2015-04-01 22 views
0

我目前有jquery表單驗證插入到我的頁面,我目前有一個問題試圖驗證狀態下拉,視圖的構建方式如下所示。用戶選擇國家,然後觸發回控制器並返回鏈接到該國家的狀態並建立狀態下拉菜單。在選擇一個國家之前,狀態下拉選擇的值爲0,並且我的理解是「請選擇一個狀態」,Jquery表單驗證將看到0並假定它的值,而在我的情況下,這不是一個值我需要用戶選擇一個更大的值0.所以當用戶按下提交時,如果狀態選擇值爲0,我需要顯示錯誤消息,否則進行。這是目前我有什麼如果值爲0,jquery formvalidation必填字段

$('#myForm').validate({ // initialize the plugin 
    rules: { 
     "UserDetails.SelectedCountry": "required", 
     "UserDetails.SelectedState": { 
      required: function (element) { 
       var value = $("#UserDetails_SelectedState").val() == 0; 

       if (value) { // If the value is true I need to return false to make it required 
        alert("here"); 
        return false; 
       } else { // Otherwise value is greater then 0 ok to carry on, 
        return true; 
       } 

      } 
     } 
     "UserDetails.Postcode": "required" 
    }, 
    messages: { 
     "UserDetails.SelectedCountry": "Please choose your country", 
     "UserDetails.SelectedState": "Please choose your state", 
     "UserDetails.Postcode": "Please enter your postcode", 
    } 
}); 

會有人請能夠告訴/顯示如何驗證反對0

** **更新

我一直在爭奪這個和今天關閉,因爲你可以從我的jquery標記看到它是否爲真我然後返回false我看到警告消息「here」,但該字段不會突出顯示爲紅色,也不顯示錯誤消息「Please choose your state」那裏的頂部的事情可能會是什麼?

回答

0

您可以將「請選擇一個州」值設爲=「」並將其禁用。

像這樣的事情

<select> 
    <option value="" disabled>Please Choose a State</option> 
    <option value="1">1</option> 
</select> 

更改您驗證此:

var value = $("#UserDetails_SelectedState").val() 
    if (value ==0 || value=="0") { // If the value is true I need to return false to make it required 
        alert("here"); 
        return false; 
       } else { // Otherwise value is greater then 0 ok to carry on, 
        return true; 
       } 
+0

我想,但它從數據庫構建和我沒有訪問數據庫。 – 2015-04-01 08:10:31

+0

對不起,我找不到你?可以更詳細地解釋一下嗎? – 2015-04-01 08:12:42

+0

下拉是數據庫驅動器,所以當前的代碼是如何工作的,當頁面被請求時,它觸發一個調用數據庫的參數,如果參數爲null,那麼它不返回狀態,所以這就是爲什麼我有0作爲選擇價值,非常愚蠢的,如果你問我這種方式建立的方式,但我不能改變,我只需要添加驗證。 – 2015-04-01 08:16:24