помогите!!! умеет ли jscript распознавать клавиши???

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
beauty
Сообщения: 1
Зарегистрирован: 02 июн 2006, 13:33
Откуда: Екатеринбург

подскажите кто-нибудь есть ли в jscript функция которая будет распознавать клавиши при нажатии?
мне нужно проследить что пользователь печатает в форме. Знать не только конечный результат, который он отправит на сервер, но и все изменения текста, производимые им в форме.
я так понимаю должна быть функция наподобие OnKeyPressed которая при нажатии клавиши помещает набранный символ, например, в массив
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

beauty,

Код: Выделить всё

document.getElementById('myelement').onkeydown=keydownhandler;
как это работает, можешь посмотреть тут (смотри исходник).

Но пользователь ведь может выделить текст и мышкой и по правой кнопке "вырезать" его,
или клавишей del - удалить всё выделение, а если ты будешь проверять только клавиши,
в копии текста, с которой работает JavaScript удалится только один символ (да ещё и тот, который таки остался).

Так что тут нужно многое учитывать.

А потому, самое надёжное, использовать метод onchange:

Код: Выделить всё

<INPUT TYPE="text" VALUE="Enter email address" NAME="userEmail" onChange=validateInput(this.value)>
 <script type="text/javascript" language="JavaScript">

this.myForm.userEmail.focus();
this.myForm.userEmail.select();

function validateInput(userInput) {
 if (userInput.match("@"))
    alert("Thanks for your interest.");
 else
    alert("Please check your email details are correct before submitting");
}
</script>
(c) http://www.devguru.com/Technologies/ecm ... hange.html

Так же полезным может быть событие onblur (когда элемент теряет фокус),
чтобы не проверять каждую клавишу, а обрабатывать все изменения внутри элемента за один раз.
Ответить