jQuery $ .each break问题

时间:2013-12-21 14:28:33

标签: jquery loops each

我有一个函数来检查类.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,当项有值时问题,它不会继续代码,任何提示?

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:1)

问题是.each()返回一个jQuery对象,它始终是真实的(不管从每个处理程序返回的值....如果你返回false它只是终止元素集的进一步迭代)< / p>

一种解决方案是使用有效的状态变量,如

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;
}