2011-05-04 85 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

相关问题