, что нельзя вводить цифры и специальные символы в текстовое поле ...
Не делайте этого через keypress
фильтрацию.Это враждебно для пользователя, сбивает с толку, портит другие нажатия клавиш управления и легко победить, используя другие методы ввода, такие как копирование / вставка, перетаскивание, заполнение форм, проверки орфографии, IMEs ...
Вместо, имейте предупреждение, которое визуально направляет пользователя, когда он вставил что-то неожиданное, например ::
<input type="text" name="T1" id="TX1"/>
<div id="TX1_help">
Please do not use numbers or ‘!’, ‘_’ or ‘#’ characters in this field.
</div>
<script type="text/javascript">
var tx1= document.getElementById('TX1');
var tx1help= document.getElementById('TX1_help');
function checkTX1() {
var isok= /^[^0-9_#!]*$/.test(tx1.value);
tx1help.style.display= isok? 'none' : 'block';
}
checkTX1();
// Re-check the field every time a key is pressed or other change event.
// To ensure it is still checked in a timely fashion in the case of
// non-keyboard events, add a timer as well.
//
tx1.onchange=tx1.onkeyup= checkTX1;
setInterval(checkTX1, 500);
</script>
Вы можете использовать addEventListener
для прикрепления события, если хотите, но знайте, что это выиграноне работает в IE <9, для чего вам понадобится модель <code>attachEvent.(event.returnValue
относится к модели IE attachEvent
и не будет работать с addEventListener
, который вместо этого использует event.preventDefault()
.)