2017-05-20 161 views
1

我想驗證數組使用jQuery驗證插件。該數組有一個數字鍵,鍵號不是順序的。這意味着,它可能是驗證數組使用jQuery驗證

cause[0] or cause[2] or cause[7] 

HTML代碼

<form id="myform" action="submit.php"> 
    <select name="cause[0]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <select name="cause[2]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

演示 - https://jsfiddle.net/squidraj/afgmqf9g/3/

這不是驗證並提交表單submit.php文件。在螢火蟲錯誤控制檯中也沒有錯誤。

任何幫助,高度讚賞。

+0

的可能的複製[如何驗證的陣列輸入使用驗證p lugin jquery](http://stackoverflow.com/questions/24670447/how-to-validate-array-of-inputs-using-validate-plugin-jquery) – JYoThI

+0

沒有用忽略。 https://jsfiddle.net/squidraj/afgmqf9g/7/ –

+0

@JYoThI我改變了checkForm函數的描述,但沒有工作。 –

回答

1

試試這個Working Fiddle

<form id="myform" action="submit.php"> 
    <select name="cause[0]" id="cause" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <select name="cause[1]" id="cause1" class="cause"> 
    <option value="">Cause to Support</option> 
    <option value="993">Medical</option> 
    <option value="355">Children</option> 
    </select> 
    <input type="submit" name="submit" value="submit" id="btnSubmit" /> 
</form> 

jQuery代碼:

$("#myform").validate(); 
    $(".cause").each(function() { 
     $(this).rules("add", { 
      required: true, 
      messages: { 
      required: "Custom Message for required" 
      } 
     }); 
    }); 

    $("#btnSubmit").click(function(e){  
    var isValid= $("#myform").valid(); 
    if(isValid==false){ 
    e.preventDefault(); 
    } 
    else{ 
     alert("Validate Successful."); 
    } 
    }); 
+0

輝煌。我想知道是否可以添加自定義錯誤消息。 –

+1

非常好。非常感謝。 –

+0

有一個問題。由於這是在類名上進行驗證,所以錯誤消息在最後一個類名後面添加。第一個選擇框後面有幾個輸入元素,然後是第二個選擇框。因此,如果我將第一個選擇框留空並進行驗證,則錯誤消息出現在最後一個選擇框之後。 –

0

試試這個:

$("#myform").validate(); 
$(".cause").each(function (item) { 
    $(this).rules("add", { 
     required: true 
    }); 
}); 

希望這將有助於

+0

我試過但沒有工作。更新小提琴 - https://jsfiddle.net/squidraj/afgmqf9g/6/ –