2012-03-26 60 views
2

以下是一些代码,用于确保在属性为的输入的值等于''时,人们无法提交。我的问题是,它从第一个到最后一个输入检查IF声明。这意味着如果第一个输入有一个值,表单将提交;如果前两个输入被填充,它将提交等等......如果第一个输入未被填充,则对于其他输入工作正常。是否有可能确保在返回true或false之前检查所有输入?如果语句在类型的第一个选择器返回true时返回true

$('form').submit(function() { 
    var input = $('input, textarea'); 

    if (input.data('fill') == 'fill' && input.val() == '') { 
     return false; 
    } 
}); 

我知道我可以通过针对每个单独的输入与“否则,如果”解决这个问题,但这似乎只是错误的方法去做。

回答

3

要考虑所有input值使用each方法。

$('form').submit(function() {  
    var allFilled = true; 
    $('input, textarea').each(function() { 
    if ($(this).data('fill') === 'fill' && $(this).val() === '') { 
     allFilled = false; 
    } 
    }); 

    return allFilled; 
}); 
+0

非常感谢,不知道你可以从if语句创建一个var false。这太棒了!谢谢 – BrianP 2012-03-26 19:05:51