Ваша функция each
повторяет процесс для каждого поля и возвращает окончательный результат.
Таким образом, в фоновом режиме процесс выглядит примерно так:
areSomeFieldsEmpty = true, // по имени
areSomeFieldsEmpty = true, // по фамилии
areSomeFieldsEmpty = false, // по электронной почте
и последний результат - это то, что вы видите areSomeFieldsRequired = false или viseversa . в зависимости от того, как ваше приложение проходит через каждый цикл. Обычно это сверху вниз.
SO Я предлагаю, чтобы счетчик проверил истину или ложь и увеличил , если истина , тогда, если счетчик больше 0, это означаеттам было несколько пустых полей.
И вы можете установить areSomeFieldsRequired = true или false один раз
function checkForm() {
var counter = 0;
$.each(arr, function(index, value){
if($('#' + value).val().length <= 0) {
counter++;
}
});
console.log(counter);
if (counter > 0){
areSomeFieldsEmpty = true
}
else {
areSomeFieldsEmpty = false
}
}