【问题标题】:Jquery formvalidation required field if value is 0如果值为 0,则 Jquery formvalidation 必填字段
【发布时间】:2015-04-01 07:48:46
【问题描述】:

我目前在我的页面中插入了 jquery 表单验证,我目前在尝试验证状态下拉列表时遇到问题,视图的构建方式是这样的。用户选择国家,然后返回控制器并返回与该国家相关联的状态并建立状态下拉列表。在选择一个国家之前,状态下拉列表的选择值为 0,并且根据我的理解,其文本是“请选择一个州”Jquery 表单验证将看到 0 并假定它是一个值,而不是在我的情况下这不是一个值我需要用户选择一个更大的值 0。所以当用户按下提交时,如果状态选择的值为 0,我需要显示错误消息,否则继续。这是我目前拥有的

 $('#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 标记中看到的那样,如果它是真的,然后返回假我看到警报消息“here”,但该字段没有以红色突出显示,也不是显示错误消息“请选择您的状态”,有人能在头顶上看到它可能是什么吗?

【问题讨论】:

    标签: javascript jquery validation


    【解决方案1】:

    您可以将“请选择一个状态”的值设置为 ="" 并禁用它。

    类似的东西

    <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 作为选定值,如果你问我它的构建方式是多么愚蠢,但我无法改变我只需要添加验证。
    • 尝试更改您的验证码?查看我更新的帖子
    • 我在这里看到了警报,但没有显示“请选择您的州”的消息
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2018-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2017-09-10
    相关资源
    最近更新 更多