如何防止用户在表单的文本字段中输入特殊字符?

时间:2017-06-29 20:51:06

标签: jquery

我试图阻止用户输入特殊字符,如(!,@,&)

以下代码限制用户只有在第一个字符之后输入上述字符才允许用户输入上述字符。

例如&无法进入,但A&可以输入

$('input#first_name-required').bind('keypress', function(e) {
    console.log( e.which );
    if($('input#first_name-required').val().length == 0){
        var k = e.which;
        var ok = k >= 65 && k <= 90 || // A-Z
            k >= 97 && k <= 122 || // a-z
            k >= 48 && k <= 57 //0-9 ;

        if (!ok){
            e.preventDefault();
        }
    }
}); 

2 个答案:

答案 0 :(得分:2)

if($('input#first_name-required').val().length == 0)

只需删除此条件即可正常使用。

.val()返回输入内的字符串。 .length == 0实际上意味着&#34;如果字符串长度为0个字符&#34;。验证仅在输入为空时运行,因此仅在您键入第一个字符时运行。

答案 1 :(得分:1)

您已添加if条件。我想你可能想检查长度大于0

object
$('input#first_name-required').bind('keypress', function(e) {
    
    
        var k = e.which;
        var ok = k >= 65 && k <= 90 || // A-Z
            k >= 97 && k <= 122 || // a-z
            k >= 48 && k <= 57 //0-9 ;

        if (!ok){
            e.preventDefault();
        }
    
});