jQuery验证插件的日,月,年下拉验证

时间:2019-05-23 05:45:16

标签: jquery jquery-validate

我通常使用全名,电话号码,电子邮件和DOB字段的形式。我正在使用jQuery Validate插件(v 1.19.0)来验证表单,但在验证“出生日期”部分时卡住了。

出生日期实际上是三个下拉列表-ddlDays,ddlMonths和ddlYears。该字段不是是必填字段,但是

1)如果任何下拉菜单中的值都不是默认值(0),则应启动验证并警告用户从所有三个下拉菜单中选择值。

2)如果全部选择了三个,则应检查所选日期是否有效。

我有适当的功能来检查上述2种情况,但是在将想法应用到插件时遇到困难。

我可以在插入验证插件之前检查DOB,但是拥有验证插件的逻辑不适合。因此,我很想知道是否有人可以给我一个指导,说明如何使用该插件实现此目标。任何想法都值得赞赏。

-----编辑------ //如果选择了任何日期则进行检查然后验证日期的代码

    function validateDate()
    {
        var dd = $("#ddlDays");
        var dm = $("#ddlMonths");
        var dy = $("#ddlYears");

        // check date was selected
        if (dd[0].selectedIndex == 0 || dm[0].selectedIndex == 0 || dy[0].selectedIndex == 0)
        {
            console.log('date not selected')
            return false;
        }

        // check date is valid
        var date = new Date();
        date.setFullYear(dy.val(), dm.val() - 1, dd.val());
        var id = dy.val() + "-" + (dm.val() - 1) + "-" + dd.val();
        var pd = date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate();

        if (id != pd)
        {
            //alert("date is invalid!");
            console.log('date is not valid')
            return false;
        }
        console.log('date is valid')
        return true;
    }


// CODE FOR VALIDATE PLUGIN
            $("#frmPersonalInfo").validate({
                rules: {
                    txtFullName: {
                        required: {
                            depends: function () {
                                $(this).val($.trim($(this).val()));
                                return true;
                            }
                        },
                        regex: "^[a-zA-Z_]*$",
                        minlength: 3,
                        maxlength: 100
                    },
                    txtEmail: {
                        required: true
                    }
                },
                messages: {
                    txtFullName: {
                        required: "You must fill in this field.",
                        regex: "You may only enter characters here."
                    }
                }
            });

0 个答案:

没有答案