|
|
|
|
|
для: Николай2357
(05.07.2008 в 21:11)
| | Заметил одну интересную вещь. Целый день мучаешься, не можешь решить проблемку. Стоит написать на форум, как тут же приходит решение.
Спасибо, придумал. | |
|
|
|
|
|
|
| Здравствуйте.
Сломал голову об такую задачку. Мне нужно посчитать количество символов, введенных в <textarea> с клавиатуры (есть еще введенные скриптом). Казалось бы просто: записать в переменную объект textRange событием onkedovn и сравнить с объектом, сформированным событием onkeyup. Почему так сложно - нужно выловить конкретные символы, а коды клавиш при переключении с кирилицы на латиницу меняются только в Опере. Ну может еще где, я не проверял Мне нужен IE, а там как всегда все не как у людей.
Код примерно такой:
var Vsego = 0;
var reg1 = new RegExp("\\[","g");
var reg2 = new RegExp("\\]","g");
function Setdown(){
var kc=event.keyCode;
if(kc==219||kc==221){
document.form.message.focus();
var fot = form.message.createTextRange();
var ft=fot.text;
var scdkv = new Array();
var scdkvv = new Array();
var Svv1=0;
var Svv2=0;
var scdkvv=ft.match(reg1,"");
if(scdkvv!=null){
Svv1=scdkvv.length;
}
var scdkv=ft.match(reg2,"");
if(scdkv!=null){
Svv2=scdkv.length;
}
Vsego=Svv1+Svv2;
}
}
|
Второй блок аналогично. Потом сравниваю и получаю разницу. Все бы ничего, но есть один нюанс. Если не отпускать клавишу, происходит куча onceypress, и почему то это "странным" образом отражается на результате. По логике вещей onkedovn должно наступать один раз, при нажатии, ан нет: в переменную записывается конечный результат. Как можно прервать это событие, не прерывая onceypress?
Спасибо | |
|
|
|
|