我编写了下面列出的代码,以限制用户输入类型为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;
});
答案 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*/
})