当文本框包含特定键码时触发事件

时间:2011-05-04 08:58:24

标签: javascript jquery validation

我目前正在研究jQuery功能,检查文本框中是否存在某些字符值,然后根据字符的大小来触发某些事件。

我认为最简单的处理方法是检查密码。我尝试了一些不同的事情来使事件触发,但似乎没有任何事情发生。

我要检查的其中一件事是文本框是否包含@字符(特定文本框中不允许使用该字符,根据此网站,其密钥代码为64 - expandinghead)< / p>

我试图使用的一些代码:

$("#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类。

1 个答案:

答案 0 :(得分:3)

keyup()事件使用扫描码操作,最好使用keypress()来捕获实际文本输入(如jQuery documentation中所述):

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

jQuery规范化e.which,无需检查任何其他内容。