#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть простой цикл jquery, который проходит через мою форму и
- проверяет, есть ли пустые поля.
- Если какие-либо из них пусты, пометьте их «пустым» классом и
- затем создайте переменную ‘error’
В основном:
// check all the inputs have a value...
$('input').each(function() {
if($(this).val() == '') {
$(this).addClass('empty');
var error = 1;
}
});
Это замечательно работает. Однако, по мере продолжения моего кода, я, похоже, не могу получить доступ к этой переменной ‘error’ … как будто она заблокирована внутри каждого цикла. Поскольку следующий код находится сразу после цикла .each(), я никогда не запускаю функцию my_error_function(), хотя я знаю, что критерии 1 и 2 работают.
if(error == 1) {
my_error_function();
} else {
my_non_error_function();
}
Как мне получить доступ к этой переменной, чтобы я мог использовать ее результат в другом месте кода?
Ответ №1:
Определите вашу переменную ошибки вне вашей функции / цикла
var error = 0;
$('input').each(function() {
if($(this).val() == '') {
$(this).addClass('empty');
error = 1;
}
});
Ответ №2:
Определите переменную вне области видимости или присвоите ее глобальной переменной. Переменные с интервалом между именами также работают (например, foo.bar.error = 1)
$('input').each(function() {
if($(this).val() == '') {
$(this).addClass('empty');
window.error = 1;
}
});
...
alert(error);