|
как отделить нажатие символьных клавиш от функциональных?
Подскажите, пожалуйста, как отделить нажатие символьных клавиш от функциональных?
Пример: точка имеет KeyCode = 46, как и DEL, что мне делать, чтобы запретить точку и разрешить клавишу DEL? Заранее благодарен. |
46 в e.keyCode - это дэл.
46 в e.charCode - это точка. |
У меня charCode почему то везде выдает undefined
|
Вот небольшой тестовый скриптик написал:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ТЕСТ</title> <script type="text/javascript" language="JavaScript1.2"> <!-- function data_check(n) { var echo = document.getElementById("echo" + n); var echoo = document.getElementById("echoo" + n); echo.innerHTML = event.keyCode; echoo.innerHTML = event.charCode; } //--> </script> </head> <body> <form> <input name="test" type="text" onKeyPress="data_check('')" onKeyDown="data_check('2')" onKeyUp="data_check('3')" /> </form> <div id="echo">- 1 -</div><div id="echoo">0</div> <div id="echo2">- 2 -</div><div id="echoo2">0</div> <div id="echo3">- 3 -</div><div id="echoo3">0</div> </body> </html> |
ну так в ИЕ его и нет :)
Смотри: запускай свой пример в ИЕ и нажимай дэл. Событие онкейпресс для него не происходит. Вот так и различай в ИЕ. |
Да и точка в ИЕ - это 190 :)
|
190 срабатывает на onKeyDown и onKeyUp, а на onKeyPress - 46
charCode все равно undefined, и не только в ИЕ, а так же и в опере, сработало только в Google Chrome. А в мозиле почему то вообще ничего не пашет. Если бы мне надо было бы только точку запретить - я бы обробатывал onKeyDown и не парился бы. Но суть в том, что я изначально запрещал в полях некоторые символы для ввода (например, было одно поле, в которое я разрешил вводить только цифры), делал это через onKeyPress, но когда тестировал - понял, что упраляющие клавиши теперь тоже не работают (запретив все кроме цифр в onKeyPress, я запретил и функциональные клавиши), тогда я их тут же разрешил, но вместе с функциональными клавишами добавились и нежелательные символы. И вот теперь передо мной стоит проблема как отделить нажатие символьных клавиш от функциональных, и почему в мозиле нифига не работает. |
http://javascript.ru/forum/project/1...nyjj-vvod.html
вот посмотри этот код. Он работает везде правильно. Может поймёшь, почему твой код не пашет в ФФ :) |
Ну что ж, спасибо. Попробую разобраться, хотя, если честно, врядли.
|
ZoNT можешь подписать коментарии, а то я вообще ничего разобрать немогу - некоторые операторы впервый раз вижу. А еще лучше - если не трудно, покалдуй над моим скриптом.
|
Часовой пояс GMT +3, время: 05:54. |
|