jQuery选择输入类型文本,其中ID不等于

jQuery select input type text where ID not equal to

本文关键字:其中 ID 不等于 文本 选择 输入 类型 jQuery      更新时间:2023-09-26

为了限制用户输入类型为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;
});

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

$('input[type=text]:not(#allowall)').keypress(function(e){
    /*stuff*/
})
$('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;
});

检查文本框的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;
});

可以使用attribute does not equal selector

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