Вот как раз я пытаюсь сделать свой текстовый блок допустимым только для чисел. Я могу обнаружить keyCode, но event.preventdefault() не работает.event.preventdefault() не работает над событием изменения текстового поля
полный HTML + JavaScript
<HTML>
<HEAD>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#textbox1").keydown(function(event) {
try
{
if (event.keyCode >= 48 && event.keyCode <= 57)
{
alert("valid number");
}
else
{
event.preventDefault();
alert("It's NAN");
}
}
catch(ex) {
alert('An error occurred and I need to write some code to handle this!');
}
event.preventDefault();
});
});
</script>
</HEAD>
<BODY>
<FORM>
<input type="text" id="textbox1">
</FORM>
</BODY>
</HTML>
вот fiddle.
Как достичь того же?
Это не работает в FF 19.0. –
Используйте 'event.which' для совместимости с FF. См. Обновленный скрипт. –
он работает нормально, но не могли бы вы рассказать, почему keypress не keydown? в чем проблема, вызванная keydown? –