2011-05-04 49 views
1

我目前正在研究jQuery功能來檢查文本框中的某些字符值,然後根據它是什麼字符觸發某個事件。當文本框包含特定的鍵碼時觸發事件

我想通過檢查鍵碼來處理這個最簡單的方法。我嘗試了一些不同的事情來使事件觸發,但似乎沒有發生。

有一個問題我要檢查的事情是,如果一個文本框包含@字符(未在特定的文本框允許,並根據這個網站的鍵碼是64 - expandinghead

某些代碼我已經嘗試使用:

$("#NoEmailAllowed").live({ 
    "keyup": function(e) { 
     if((e.keyCode == 64) || (e.which == 64)) 
     { 
      $(this).addClass("redBg"); 
     } 
    } 
}); 

$("#NoEmailAllowed:contains('@')").live({ 
    "keyup": function() { 
     $(this).addClass("redBg"); 
    } 
}); 

$("#NoEmailAllowed").keyup(function(){ 
    if(this.val().contains("@")) 
    { 
     $(this).addClass("redBg"); 
    } 
}); 

我已經嘗試了很多人的太多,但他們很安靜類似於上面的人。

所以才做出的一切我想要實現明確的是:
當用戶輸入了一些在這個文本框中的jQuery應在即時任何@字符檢查,如果發現任何@字符,觸發事件 - 例如警報或添加一個css類。

回答

3

keyup()事件與掃描碼操作,你最好使用keypress()趕上實際文本輸入(如jQuery documentation提到):

$(function(){ 
    $('#NoEmailAllowed').keypress(function(e) { 
     if(e.which == 64) 
     { 
      $(this).addClass("redBg"); 
     } 
    }); 
}); 

jQuery的正常化e.which,沒有必要檢查別的。

+0

完美地工作。謝謝! – diceler 2011-05-04 09:22:28

相關問題