Я использую jQuery validation plugin для проверки моей формы на стороне клиента. Я добавляю новый метод, используя функцию addMethod для каждого элемента управления HTML, который имеет регулярный (пользовательский) атрибут. Мой HTML-контроль будет выглядеть.jQuery validation plugin
<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}$" });