2015-04-01 24 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