У меня есть многомерный массив идентификаторов полей формы и тип проверки ошибок, который у них есть. Я хочу добавить событие размытия в каждое из полей ошибок, поэтому, когда пользователь покинет его, чтобы перейти к следующему полю, он убедится, что поле действительно.
Я создал цикл for с созданием события размытия и предупреждением, чтобы убедиться, что размытие создается для этого поля. Предупреждение сообщает, что во все поля добавлена проверка, но когда я иду проверять его на странице, независимо от того, какое поле я оставляю, событие размытия проверяет только последнее поле в массиве.
Вот функция.
function SetErrorFields(fields) {
var ErrorFields = fields;
for (Field in ErrorFields) {
alert("Field: "+ErrorFields[Field][0]+" | Validations: "+ErrorFields[Field][1]);
$('#'+ErrorFields[Field][0]).blur(function(){
Validate(ErrorFields[Field][0],ErrorFields[Field][1]);
});
}
}
Я пытался изменить пару вещей, но либо ничего не сработало, либо все стало еще хуже. Ниже приведен список того, что я пробовал, и результат.
Изменено ErrorFields[Field][0] на Field[0], но это меняет все в предупреждении на «неопределенное».
Использование следующего кода вызывает ошибки «x is undefined» при выходе из поля.
for (x=0; x<ErrorFields.length; x++) {
alert("Field: "+ErrorFields[x][0]+" | Validations: "+ErrorFields[x][1]);
$('#'+ErrorFields[x][0]).blur(function(){
Validate(ErrorFields[x][0],ErrorFields[x][1]);
});
}
И я не могу понять каждый метод.