2011-11-28 121 views
1

我想在提交form之前检查某个字段的验证。如何在提交前验证表格

<form method="post" action="test.do"> 
    <input type="file" id="file1" /> 
    <input type="file" id="file2" /> 
    <input type="file" id="file3" /> 

    <input type="button" id="submitButton" /> 
</form> 

我只想检查id = file2 & file3的验证。它不应该留空。

$("#submitButton").click(function() { 
    if(validate()){ 
     $(this).closest("form").submit(); 
    } 
    }); 

function validate() { 
    /* if blank return false else true */ 
    how to validate here ?? 
} 

* 注:*因为我有数百个领域的检查,这将会是非常漫长的使用id进行验证。

有没有其他方法可以检查?

回答

3

我将一个类属性添加到验证字段:

<input type="file" id="file2" class="validate" /> 
<input type="file" id="file3" class="validate" /> 

然后做与jQuery选择一些验证:$( '验证')

$('.validate').each(function(){ 
    if($(this).val() == ''){ 
      return false; 
    } 
}); 
1
var valid = true; 
$('input[type=file]').each(function() 
    { if ($(this).val() == '') valid = false; } 
); 
return valid; 

您可能需要做一个不同的检查,而不是val()==''我没有试过这个。

+0

我只想检查某些字段,例如只有2个领域3.所以我应该怎么做?你的解决方案检查所有可用的'文件类型'字段,这是我不想检查所有。 – user1010399

1

你可以尝试这样的

function validate() 
{ 
    if(!$('#file2').val() && !$('#file1').val()) 
    { 
     alert('please select file 1 and file2'); 
    } 
} 
1

如果你试图验证空输入字段仅为什么不使用:

$(':input').each(function(){ 
    if($(this).val() <= ""){ 
      return false; 
    } 
}); 
+0

我可以使用任何'class'而不是':input''吗?这个解决方案将检查所有的输入类型字段,而我只需要检查某些字段。 – user1010399

+0

当然为什么不。但不要忘记添加一个类到你想要影响的元素 – wargodz009

1

数百场的?

那么,因为你使用jQuery,我建议jQuery validation plugin

该文档是全面的,插件可以很容易地检查多个领域几乎没有任何安装,而不是添加类到<input>s

如果您想更详细地了解该插件,还允许您为每个字段编写自定义错误消息 - 但这有点超出了问题的范围。

+0

我的意思是有8到10个表单,每个表至少有15个字段。 – user1010399

0

给ID =”形式“来形成。

function validate() { 
    var validator = $("#form").validate(); 
    var isValid = validator.form(); 
    return isValid; 
}