从每个()停止功能返回

时间:2014-03-31 13:57:43

标签: javascript jquery

我正在检查用户提交表单以检查所有输入是否已填充,但即使我返回以逃避该功能,我的代码也会继续。

function save(e) {
    $('#storename, #offer').each(function() {
        if ($(this).val() == '') {
            alert("Please fill in all the required fields.");

            return false;
        } 
    });

    //Don't Run Below if inputs are empty..  
}

3 个答案:

答案 0 :(得分:4)

您可以使用标志来检查有效性

function save(e) {
    var valid = true;

    $('#storename, #offer').each(function () {
        if ($(this).val() == '') {
            alert("Please fill in all the required fields.");
            valid = false;
            return false;
        }

    });
    if (!valid) {
        return false;
    }

    //Dont Run Bellow if inputs are empty..  

}

each循环返回时,您只是从each callback方法返回,而不是从save方法返回。您可以使用标记来检查字段是否有效,如上所示,如果需要,可以使用它从save返回

答案 1 :(得分:1)

function save(e) {
       var empty = false;
       $('#storename, #offer').each(function() {
           if ($(this).val() == '') {
             alert("Please fill in all the required fields.");
             empty = true; 
           }

       });
       if(empty) return false;
       //Dont Run Bellow if inputs are empty..  

}

您实际上并未从save(e)函数返回任何值。现在返回的唯一函数是each()内的匿名函数。您需要处理匿名函数之外的空字段信息,如上所述。

答案 2 :(得分:0)

我迟到了,但超级优雅。)

function save(e) {
  return !$.grep($('#storename, #offer'), function(el){
               return !$(el).val()}
          ).length;
}