jQuery datepicker 验证失败

Posted

技术标签:

【中文标题】jQuery datepicker 验证失败【英文标题】:jQuery datepicker validation fail 【发布时间】:2015-10-29 16:18:10 【问题描述】:

有一个包含 jQuery Datepicker 的表单。日期格式为英国格式(日/月/年),但是如果第一个数字(应该是日期)大于 12,则日期选择器会一直未能通过验证,这表明它正在尝试针对美国格式进行验证,因此会看到日期作为一个月。在 chrome 中,这会停止提交表单。下面的代码是用来初始化datepicker的js:

    $(".datepicker").datepicker(
        showOn: "button",
        buttonImage: "/Images/calendar.gif",
        buttonImageOnly: true,
        dateFormat: "dd/mm/yy"
    );

应通过验证但未通过验证的示例日期为 2015 年 7 月 31 日

如果无法正确验证,我同样乐意删除验证。

【问题讨论】:

你确定是 JQuery datepicker 上的验证器失败了,而不是表单上的另一个客户端验证器? 可能,它是 MVC 表单的一部分,因此实际上可能是数据模型停止了验证,尽管 Internet Explorer 不是问题(但在 IE 中很少能正常工作)。将调查 是的,是 MVC 导致了验证错误。不敢相信我以前没有看过那里。只需将 TextBoxFor 替换为标准 TextBox 即可再次开始工作。 太棒了!现在会发生什么,我应该从我的评论中做出回答,这样这个问题就不会陷入困境吗? :) 如果你喜欢的话当然可以。很高兴标记为答案 【参考方案1】:

确保没有任何其他客户端/服务器端验证启动,我怀疑 JQuery Datepicker dateFormat 是一个红鲱鱼。

【讨论】:

【参考方案2】:

我不认为您的问题实际上与日期格式有关。

看看这里的链接:http://api.jqueryui.com/datepicker/#utility-formatDate

如果您注意到,它表示您可以使用这些格式的任意组合。我相信这是其他地方的验证问题,而不是日期选择器的初始化。如果日期选择器有问题,即使在验证之前,它也不会以正确的格式输入日期。

检查您应用此设置的日期字段。您可能需要为该 input 字段明确格式化日期,以便它接受您的日期选择器的格式

【讨论】:

以上是关于jQuery datepicker 验证失败的主要内容,如果未能解决你的问题,请参考以下文章

使用 jquery 验证和 jquery-ui datepicker

JQUERY Datepicker - 从 datepicker 选择日期后验证错误不会消失

Jquery Datepicker 和 Jquery 验证

jquery datepicker验证

带有 jquery datepicker 错误的 jquery 验证插件(请输入有效日期)

使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)