【问题标题】:jQuery validation depends rule not workingjQuery验证取决于规则不起作用
【发布时间】:2014-01-18 10:43:39
【问题描述】:

我正在制作一个注册表单并使用 jQuery 验证来检查该表单。我想验证出生日期,以便他们无法选择例如 2 月的第 31 天。 我的代码是:

birthday:  {
             required: true,
             min: 1,
             max: {
             depends: function(element) {
              switch (parseInt($('#birthmonth').val())){
                     case 2:
                            maxday = 29;
                            break;
                     case 4:
                     case 6:
                     case 9:
                     case 11:
                            maxday = 30;
                            break;
                     default:
                            maxday = 31;                                
                 }                                                
              return maxday;
                 }}
            },

switch 正在工作,该函数返回每个月的正确值,但即使我选择第 7 天之后的任何月份,验证仍然显示无效选择。我试图将返回值转换回字符串,但它是还是不行。

【问题讨论】:

  • 如果你能包含一个完整的.validate() 电话和足够的标记来进行简洁的演示,那就太好了......它减少了回答所需的工作量,并帮助未来的读者理解什么你在做。

标签: javascript jquery jquery-validate


【解决方案1】:

在自定义方法中这对您来说会更好一些。使用the addMethod method 创建新规则。

$(document).ready(function () {

    $('#myform').validate({
        rules: {
            birthday: {
                required: true,
                min: 1,
                mymax: ['#birthmonth']
            }
        }
    });

    jQuery.validator.addMethod('mymax', function (value, element, params) {
        switch (parseInt($(params[0]).val())) {
            case 2:
                maxday = 29;
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                maxday = 30;
                break;
            default:
                maxday = 31;
        }
        params[1] = maxday;  // simply used for populating message at {1}
        return parseInt(value) <= maxday;
    }, "Please enter a value less than or equal to {1}");

});

工作演示:http://jsfiddle.net/4Uv8Y/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2018-03-12
    相关资源
    最近更新 更多