我正在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