使用JQUERY在文本框中只允许字母数字

使用JQUERY在文本框中只允许字母数字,jquery,validation,Jquery,Validation,我在此处找到以下代码: 所以我写了这段代码进行验证,但它不起作用 <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"

我在此处找到以下代码:

所以我写了这段代码进行验证,但它不起作用

<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="">

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

$(函数(){
$(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" />
$('#txtNumeric').keydown(函数(e){ if(e.shiftKey | | e.ctrlKey | | e.altKey){ e、 预防默认值(); } 否则{ var key=e.keyCode;
如果(!((key==8)| |(key==46)| |(key>=35&&key=65&&key=48&&key=96&&key这是HTML部分,只需要一个ID

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

现在,JQuery的主要逻辑是:


$(文档).ready(函数(){
$('#txt字母数字').keydown(函数(e){
var k=e,其中;
var ok=k>=65&&k=96&&k=35&&k=48&&k实际上,这允许在文本中使用“!$%^&*()符号。您需要稍微修改答案为:

<!-- 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();
    }
});

$('#username').keydown(函数(e){
var k=e,其中;

var ok=k>=65&&k=96&&k=35&&k=48&&k多亏了@Steaton,但仍然允许使用一个特殊字符: 我解决了这个问题

$(“#用户名”).keydown(函数(e){
var k=e.keyCode | | e.which;

var ok=k>=65&&k=96&&k=35&&k=48&&k请每次创建一个问题。您在一篇帖子中提出两个问题。将这些问题分成两篇帖子。好的,我将创建另一篇帖子。(!e.shiftKey&&k>=48&&k)