Я использую плагин проверки jQuery для проверки моей формы на стороне клиента. Я добавляю новый метод, используя функцию addMethod для каждого элемента управления HTML, имеющего атрибут regex (custom). Мой HTML-элемент управления будет выглядеть так.
<input type="text" id="txtInf" name="txtInf" regex="some regular exp" error="check your inf"></input>
$("*[regex]").each(function () {
var controlId = $(this).attr('name');
var regex = new RegExp((this).attr('regex'));
var error = $(this).attr('error');
$.validator.addMethod(controlId, function (value, element) {
return this.optional(element) || false;
}, error);
$(this).rules("add", { '" + controlId + "': "^[a-zA-Z'.\s]{1,40}$" });
$(this).validate();
});
Здесь я даю имя метода в виде controlId , который равен txtInf . В нижней строке мне нужно дать txtInf, но я хочу вместо этого использовать переменную controlId, так как я хочу сделать эту функцию универсальной. Но если я пишу controlId напрямую, он ищет метод с тем же. Но на самом деле добавленный метод - это txtInf. Поэтому мне нужен способ обобщить эту строку, используя переменную controlId.
$(this).rules("add", {txtInf: "^[a-zA-Z'.\s]{1,40}$" });