【问题标题】:jQuery Validate plugin not checking non datesjQuery Validate 插件不检查非日期
【发布时间】:2013-01-29 03:33:13
【问题描述】:

我正在使用 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),并且都可以正常加载。

【问题讨论】:

  • 文档中对此进行了解释:如果值是有效日期,则返回 true。使用 JavaScript 内置的 Date 来测试日期是否有效,因此不进行完整性检查。只有格式必须有效,而不是实际日期,例如 30/30/2008 是有效日期。与文本输入一起工作!这意味着当传递给Date 构造函数时不返回“无效日期”的任何东西都将验证。
  • 作为测试输入,我尝试了“abc”和“123”,这两个条目似乎都通过了验证。根据评论,这是日期验证的预期和正常行为吗?

标签: jquery jquery-validate


【解决方案1】:

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

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

您的代码与您发布的完全一样,正在按预期工作。如您所见,abc123 没有通过验证...

http://jsfiddle.net/zsCM3/

当您已经在rules 选项中声明了date: true 时,您也不需要使用内联class="date"。虽然这与问题无关,但演示在两种情况下的工作方式都是一样的......

http://jsfiddle.net/TWEXJ/


编辑:

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

【讨论】:

  • 嗨 - 谢谢刚刚审查 - 谢谢。然而,在 Chrome 中,脚本 as 仍然接受 123 作为有效日期。我在 Firefox 中重新测试了它,一切正常并按预期进行了测试。我知道 chrome 只验证了我们的日期,但不知道这也可能是 chrome 的潜在问题。谢谢
  • @Ray,由于发布的代码有效,您能否澄清您的问题?
  • @sparky- 抱歉总是忘记在添加评论时不要按回车键,因为它会发送到上述早期完成的评论。出现浏览器问题 - 不知道如何从这里解决,所以会接受它在其他任何地方都可以工作并继续...谢谢。
  • @Ray... 这真的很奇怪。在我的 Chrome 中,123 通过验证但abc 没有。这可能值得向插件作者报告错误。
猜你喜欢
  • 2015-03-05
  • 1970-01-01
  • 1970-01-01
  • 2013-03-27
  • 1970-01-01
  • 2013-09-15
  • 2011-06-26
  • 1970-01-01
相关资源
最近更新 更多