gpt4 book ai didi

jquery - DatePicker 上的日期验证器在 IE7/IE8 中触发漏报

转载 作者:行者123 更新时间:2023-12-03 22:30:35 24 4
gpt4 key购买 nike

我对包含两个 jQuery UI DatePickers 的表单进行了一些基本验证。日期的格式为 yy-mm-dd。两个日期选择器上都有必需日期验证。

这些在 Chrome 和 FF 中按预期工作,但在 IE7/IE8 中触发漏报(有效输入被认为无效)。

日期选择器设置:

$('.datepicker').datepicker({
dateFormat: 'yy-mm-dd'
});

这是不相关的,但我想我会包括在内,以防万一:

$.validator.addMethod("endDate", function(value, element) {
var startDate = $('#startDate').val();
return Date.parse(startDate) <= Date.parse(value);
});

实际验证:

$('#ExampleForm').validate({
rules: {
StartDate: {
required: true,
date: true
},
EndDate: {
required: true,
date: true,
endDate: true
}
},
messages: {
StartDate: {
required: "Start Date required",
date: "Invalid date. Must be formatted yyyy-mm-dd"
},
EndDate: {
required: "End Date required",
date: "Invalid date. Must be formatted yyyy-mm-dd",
endDate: "Start date must occur before end date."
}
},
errorPlacement: function(error, element) {
error.appendTo(element.parent().next());
},
submitHandle: function(form) {
form.submit();
}
});

在 IE7/IE8 中,使用两个 DatePicker 进行有效输入(仅选择日期)将导致日期错误(“无效日期。必须采用 yyyy-mm-dd 格式”)。在其他浏览器中不会出现这种情况。

它也不会产生任何 JavaScript 错误。

提前致谢,

伊恩

最佳答案

我认为您正在寻找 dateISO选项:

$('form').validate({
rules: {
StartDate: {
required: true,
dateISO: true
},
EndDate: {
required: true,
dateISO: true
}
},
messages: {
StartDate: {
required: "Start Date required",
dateISO: "Invalid date. Must be formatted yyyy-mm-dd"
},
EndDate: {
required: "End Date required",
dateISO: "Invalid date. Must be formatted yyyy-mm-dd"
}
},
submitHandler: function(form) {
form.submit();
}
});

IE 不会解析 yyyy-mm-dd 格式的日期,这就是在 IE 中使用常规 date 失败的原因。我相信 jQuery validate 只是使用 Date.parsenew Date(dateString) 来检查有效性。要检查这一点,请尝试执行 new Date("1987-11-14") 并在 IE 和 FF 中提醒该值。您将在 IE 中得到 NaN 并在 FF 中得到日期对象。

这是一个工作示例:http://jsfiddle.net/andrewwhitaker/QqSrJ/2/

关于jquery - DatePicker 上的日期验证器在 IE7/IE8 中触发漏报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4809451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com