jQuery选择ID不等于的输入类型文本

时间:2016-09-30 07:05:46

标签: javascript jquery

我编写了下面列出的代码,以限制用户输入类型为text的所有输入。现在,我想从此限制中排除ID为allowall的所有输入。如何修改代码以允许此操作?

$('input[type=text]').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9 ]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }
    e.preventDefault();
    return false;
});

4 个答案:

答案 0 :(得分:1)

$('input[type=text]').not('#allowall').keypress(function (e) {
    var regex = new RegExp("^[a-zA-Z0-9 ]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }
    e.preventDefault();
    return false;
});

答案 1 :(得分:1)

您可以使用属性不等于选择器

$(":text[id!='allowall']").keypress(function (e) {
  // do stuff with `<input type="text">` elements
  // that do not have `id` equal to `"allowall"`
});

答案 2 :(得分:1)

检查文本框的ID并排除它们的正则表达式测试

$('input[type=text]').keypress(function (e) {

   if($(this).attr('id') == 'allowall')
     return true;

    var regex = new RegExp("^[a-zA-Z0-9 ]+$");
    var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
    if (regex.test(str)) {
        return true;
    }
    e.preventDefault();
    return false;
});

答案 3 :(得分:1)

你也可以使用:not选择器,它应该更快,因为!=是jQuery选择器而:not是css选择器。像这样:

$('input[type=text]:not(#allowall)').keypress(function(e){
    /*stuff*/
})