验证以检查文本框值是否已更改

时间:2015-01-09 04:22:31

标签: javascript jquery validation

我想要一个只允许字母数字字符,退格键,删除,空格和特殊字符的验证,它可以改变Kyeboard的文本框值。我试过像

$('#profile_pstate').on('keypress',function(e1){
    var cntry_key = e1.which;
    if(cntry_key == 8 || cntry_key == 46 || cntry_key == 32 || (cntry_key >= 48 && cntry_key <= 57) || (cntry_key >= 65 && cntry_key <= 90)) {   
        // For Backspace, Delete, Space, Numbers and Alphabets
        alert('success');
    }
});

但是对于特殊字符,我该如何添加它们。如果我手动添加它们,它们不在字母和数字之类的适当范围内。请你建议我这样做的方法,甚至是正确的方法来进行验证

3 个答案:

答案 0 :(得分:0)

你可以为特殊字符做这样​​的事情

      function nospecialChars(field) {
         var val = document.getElementById(field);
        var iChars = "!@#$%^&amp;*()+=-[]\\\';,./{}|\":&lt;&gt;?";
        for (var i = 0; i < val.value.length; i++) {
            if (iChars.indexOf(val.value.charAt(i)) != -1) {
                alert("Special Characters are not allowed");
                return false;
            }
        }
    }        

页面文本框更改方法调用功能

    <input type="text" id="txt" onkeyup="validate(this.id)" />    

答案 1 :(得分:0)

尝试RegExp,下面的例子允许字母数字&amp;仅限空格:

&#13;
&#13;
$(function() {
  $('#profile_pstate').on('input', function() {
    this.value = this.value.replace(/[^\da-zA-Z\s]/g, '');
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="profile_pstate" />
&#13;
&#13;
&#13;

答案 2 :(得分:0)

我试过像

$('#profile_country').on('keypress',function(e1){
    var cntry_key = e1.which;
    var cntry_key_code = e1.keyCode;
    if( (cntry_key_code == 0 && cntry_key > 0 && !e1.ctrlKey) || (cntry_key == 0 && cntry_key_code == 46) || (cntry_key == 8) 
            || (e1.ctrlKey && cntry_key == 120) || (e1.ctrlKey && cntry_key == 118)
            || (e1.ctrlKey && cntry_key == 86) || (e1.ctrlKey && cntry_key == 88)) {
        $('#profile_pstate').val('');
    }
});

它适用于Alpha-Numeric, Special characters, Space, Backspace and Delete以及controlctrl+A事件,仅适用于剪切(ctrl + x)和粘贴(ctrl + v)。