使用JQUERY仅在文本框中允许AlphaNumeric

时间:2017-05-05 07:30:17

标签: jquery validation

我在这里找到了以下代码:

How to validate html textbox not to allow special characters and space?

所以我编写了这段代码进行验证,但它没有用。

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>

<input type="text" name="txtUsername" id="txtUsername" data-validation="alphanumeric" data-validation-allowing="_" value="">

我是否应该编写任何脚本以禁止文本框中的特殊字符。

4 个答案:

答案 0 :(得分:2)

这是HTML部分只需要一个ID

<input id="txtAlphaNumeric" type="text" />

现在是JQuery的主要逻辑:

&#13;
&#13;
	
$(document).ready(function(){
  $('#txtAlphaNumeric').keydown(function (e) {
       var k = e.which;
        var ok = k >= 65 && k <= 90 || // A-Z
            k >= 96 && k <= 105 || // a-z
            k >= 35 && k <= 40 || // arrows
            k == 8 || // Backspaces
            k >= 48 && k <= 57; // 0-9

        if (!ok){
            e.preventDefault();
        }        
    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="txtAlphaNumeric" type="text" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

实际上这允许在文本中使用!“£$%^&amp; *()符号。您需要稍微修改一下答案:

<!-- Allow only alphanumeric -->
$('#username').keydown(function (e) {
    var k = e.which;
    var ok = k >= 65 && k <= 90 || // A-Z
        k >= 96 && k <= 105 || // a-z
        k >= 35 && k <= 40 || // arrows
        k == 8 || // Backspaces
        (!e.shiftKey && k >= 48 && k <= 57); // 0-9

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

它会阻止数字的shift键。

答案 2 :(得分:0)

感谢@Steaton,但仍然允许一个特殊的charackter: 我解决了这个问题。

&#13;
&#13;
	$("#username").keydown(function (e){
		var k = e.keyCode || e.which;
		var ok = k >= 65 && k <= 90 || // A-Z
			k >= 96 && k <= 105 || // a-z
			k >= 35 && k <= 40 || // arrows
			k == 9 || //tab
			k == 46 || //del
			k == 8 || // backspaces
			(!e.shiftKey && k >= 48 && k <= 57); // only 0-9 (ignore SHIFT options)

		if(!ok || (e.ctrlKey && e.altKey)){
			e.preventDefault();
		}
	});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="username" type="text" class="validate" name="username">
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

$(function () {
   $('#txtNumeric').keydown(function (e) {
        if (e.shiftKey || e.ctrlKey || e.altKey) {
           e.preventDefault();
        } 
        else {
            var key = e.keyCode;
            if (!((key == 8) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90) || (key >= 48 && key <= 57) || (key >= 96 && key <= 105))) {
               e.preventDefault();
            }
        }
    });
});


<input id="txtNumeric" type="text" />