2011-11-28 161 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; 
}