Я использую следующие способы предотвращения ввода специальных символов в поля ввода с идентификаторами A, B и C с помощью jQuery и работает как ожидалось. Это происходит на (document) .ready.Как предотвратить повторение в моем javascript funtion?
$("[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;
});
}
и называя его:
blockSpecialChar(A);
Позвольте мне знать, где я буду неправильно. Любое предложение было бы здорово.
Заранее благодарен!
Пожалуйста, покажите ваш 'html' – Mairaj
Пожалуйста, просто используйте [ pattern] (https://developer.mozilla.org/en/docs/Web/HTML/Element/input#attr-pattern) и сообщить им, когда это недопустимый ввод с помощью css ': invalid'. Это не мешает мне вставить специальный символ. – Endless
Да, вы правы. – MnZ