1

我正在使用 jQuery Validate 插件来验证表单日期。我已经为输入元素设置了规则,以根据需要和日期进行验证。尽管似乎正在触发的唯一规则是必需的,因为我可以将任何东西放入(文本、数字等)并且它通过验证。仅当输入字段为空白时,才会显示错误。

这是我的脚本:

        $(function() {
            $('#form1').validate({
                rules: {
                    entryDate: {
                        required: true,
                        date: true
                    }
                },
                messages: {
                    entryDate:{
                        required: "A Date is required",
                        date: "Please enter a valid date"
                    }
                }
            });
        });

它位于脚本标签内。

这是我的测试表格:

    <form action="" method="POST" id="form1">
            <input id="entryDate" name="entryDate" class="date" type="text" />
            <input type="submit" name="submit" id="submit" />
        </form>

谁能指出我正确的方向?为什么非日期被接受?

我已将脚本包含在文件中(jQuery 和 Validate),并且都加载正常。

4

1 回答 1

1

引用 OP: “为什么不接受非日期?”

引用 OP 评论: “作为测试输入,我尝试了 'abc' 和 '123' 这两个条目似乎都已通过验证。根据评论,这是日期验证的预期和正常行为吗?”

您的代码与您发布的完全一样,正在按预期工作。如您所见,abc并且123不通过验证...

http://jsfiddle.net/zsCM3/

class="date"当您已经date: truerules选项中声明时,您也不需要使用 inline 。虽然这与问题无关,但演示在两种情况下都一样......

http://jsfiddle.net/TWEXJ/


编辑:

确认在 Chrome (24.0.1312.52) 中,一个条目123确实通过了验证。我用 jQuery 1.8.3 和 1.9.0 都尝试了 jsFiddle。

于 2013-01-29T04:21:08.200 回答