jQuery $. каждый перерыв проблема

0

У меня есть функция проверки элементов класса .sitem и если какое-либо из них имеет пустое значение, оно должно возвращаться, иначе код должен продолжаться.

if($(".sitem").each(function(ss, element) {

if($(this).val()=="")
{
alertify.error("item name can't be left blank");
return true;
}
return false;
}))
{
return;
}

//go on with your code

функция работает, когда значение пустое, оно предупреждает меня и возвращает false, проблема, когда элемент имеет значение, он не содержит кода, никаких подсказок?

Теги:
loops
each

2 ответа

1
Лучший ответ

Проблема заключается в .each() возвращает объект jQuery, который всегда будет правдивым (независимо от значений, возвращаемых каждым обработчиком.... если вы возвращаете false, он просто завершает дальнейшую итерацию набора элементов)

Одним из решений является использование допустимой переменной состояния, например

var valid = true;

$(".sitem").each(function (ss, element) {
    if ($(this).val() == "") {
        alertify.error("item name can't be left blank");
        valid = false;
        return true;
    }
    return false;
})

if (!valid) {
    return;
}
  • 0
    это работает, спасибо, просто следует установить значение false.
1
return true // continue loop

return false // breaks loop

Так,

var is_valid = true;

$(".sitem").each(function(ss, element) {
    if($(this).val()=="") {
        alertify.error("item name can't be left blank");
        is_valid = false;
        return false;
    }
});

if(!is_valid) {
    return;
}
  • 0
    я это уже знаю !! Тем не менее код не идет как следует!
  • 0
    он делает то же самое, что и мой пилот кода, код не идет на S, он должен!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню