我正在jQuery中进行表单验证,当用户输入#$ @%等禁用字符时会发出警告。问题是,当用户输入这些字符时,他使用SHIFT键,因此有两个键盘。
如何防止第二次发生?
if (!regex.test(lastCharacter)
alert('forbidden character');
非常感谢
答案 0 :(得分:1)
我不知道这是否有效,但你明白了:
$("#myInput").keyup(function(e) {
if(e.which == 16) {
$(this).keyup(function(event) {
if(event.which==16) event.preventDefault();
});
setTimeout(function() {
$("#myInput").off('keyup');
},1000);
}
});
答案 1 :(得分:1)
您可以绑定输入更改时发出的输入事件,但是只有IE9才支持。在此之前,您可以绑定在输入更改时发生的propertychange事件(仅在IE中)。以下示例适用于大多数浏览器,也可能在IE9中触发两次回调,因此可能需要检查输入事件支持并相应地采取相应措施。
我的不好就是那个带有属性变化的人,如果它不起作用,你可以尝试在IE中尝试使用旧的方法。
$('#boo')[0].onpropertychange = function() {};