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