Помогите в замыкании универсальной функции для обработчиков событий addEventListener
Есть два поля, значения в которых нужно отвалидировать (только цифры).
Есть код:
function validateField (e, checked_field_id) {
e.stopPropagation();
e.preventDefault();
var checked_field = $('#' + checked_field_id),
container = checked_field.parent('.field-label').children('.validate-field');
if (isNaN(payment_sum.value) || payment_sum.value === "" || payment_sum.value === undefined) {
checked_field.addClass("wrong-data");
container.addClass("validate-no");
} else {
checked_field.removeClass("wrong-data");
container.removeClass("validate-no");
container.addClass("validate-yes");
}
}
document_number.addEventListener("change", function (e, id) {
return function() {
validateField(e, id);
};
}(event,'document_number')
, false);
payment_sum.addEventListener("change", function (e, id) {
return function() {
validateField(e, id);
};
}(event,'payment_sum')
, false);
Почему-то реакция для первого поля происходит с учетом верного/неверного значения во втором поле.
На значение во первом поле скрипт не реагирует.
Подробно:
1. Ввожу в первое поле цифры - реагирует, что неверно введено (подозреваю, т.к. смотрит на значение второго поля, которое еще не заполнено и равно пустой строке).
2. Ввожу во второе поле цифры - реагирует, что верно всё введено.
3. Ввожу в первое поле буквы - реагирует, что верно введено (подозреваю опять же из-за того, что во втором поле введены цифры).
|