2014-03-31 36 views
1

我在检查用户提交表单时是否检查了所有输入已填充,但即使我退回函数,我的代码也会继续执行。从各个()返回不停止功能

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

回答

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方法。您可以使用标志来检查如上图所示的字段是否有效,并使用它,如果需要

+0

Bravo!完美的谢谢 – Brent

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)函数返回的任何值从save返回。现在返回的唯一函数是each()中的匿名函数。您需要处理上述匿名函数之外的有关空字段的信息。

0

我很晚,但超级优雅)。

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