我正在jQuery中进行表单验证,当用户输入一个禁止的字符(如#$ @%)时会发出警告。问题是,当用户输入这些字符时,他使用SHIFT键,所以有两个键盘。如何在jQuery中阻止keyup()事件?
如何防止第二次发生?
if (!regex.test(lastCharacter)
alert('forbidden character');
非常感谢
我正在jQuery中进行表单验证,当用户输入一个禁止的字符(如#$ @%)时会发出警告。问题是,当用户输入这些字符时,他使用SHIFT键,所以有两个键盘。如何在jQuery中阻止keyup()事件?
如何防止第二次发生?
if (!regex.test(lastCharacter)
alert('forbidden character');
非常感谢
您可以在输入时改变发射输入绑定事件,不过这只是自IE9以来才支持的。在此之前,您可以绑定propertychange事件(仅在IE中),当输入值发生更改时发生。下面的例子可以在大多数浏览器中使用,也可能在IE9中触发两次回调,因此可能需要检查输入事件支持并相应地采取相应措施。
这里我不好是一个与PropertyChangeListener中的它,尝试在IE浏览器,如果它不工作,你可能需要指定它的老路上。
$('#boo')[0].onpropertychange = function() {};
我不知道这是否会工作,但你的想法:
$("#myInput").keyup(function(e) {
if(e.which == 16) {
$(this).keyup(function(event) {
if(event.which==16) event.preventDefault();
});
setTimeout(function() {
$("#myInput").off('keyup');
},1000);
}
});
您好感谢您的答复。我用safari和firefox尝试了你的解决方案。 onpropertychange也会与IE一起工作吗?非常感谢 – eric01 2012-04-13 23:07:27
我没有测试过这个盒子上没有IE,而是从http://help.dottoro.com/larrqqck.php声称它应该工作(并且它从未测试过你的特殊情况) – GillesC 2012-04-13 23:09:13
textInput event似乎一个更好的候选人实际上特定于字符输入(从IE9再次) – GillesC 2012-04-13 23:10:11