这里我正试图让我的文本框只接受数字。我能够检测到keyCode但是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。
我如何实现同样目标?
答案 0 :(得分:5)
使用keypress
事件拦截更改。
<强> Demonstration 强>
答案 1 :(得分:0)
正如@dystroy所说,你应该将你的keydown改为keypress,你应该删除靠近末尾的event.preventDefault();
(第二个)以使代码有效。