我正在使用以下方法來防止特殊字符輸入到帶有jQuery的A,B和C的輸入框中,並且按預期工作。這發生在(document).ready。如何防止我的JavaScript功能重複?
$("[id$='A']").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) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});
$("[id$='B']").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) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});
$("[id$='C']").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) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
}
我想弄清楚一種常用的方法,而不是再次寫入函數。這是我試過......
function blockSpecialChar(passId){
var tempId = $("[id$ ='passId']");
tempId.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) || (/^(8|9|13|27)$/.test("" + e.keyCode))) {
return true;
}
e.preventDefault();
return false;
});
}
,並通過調用它:
讓我知道我要去哪裏錯了。任何建議都會很棒。
在此先感謝!
請出示你的'html' – Mairaj
請只使用[模式](https://developer.mozilla.org/en/docs/Web/HTML/Element/input#attr-pattern)屬性,並讓他們知道什麼時候不能用css':invalid'輸入。這不會阻止我粘貼特殊字符 – Endless
是的,你是對的。 – MnZ