我允许用户在页面上输入日期,并且我的一位测试人员正确地破坏了数据库保存并出现以下错误:
SqlDateTime 溢出。必须介于 1753 年 1 月 1 日上午 12:00:00 和 9999 年 12 月 31 日晚上 11:59:59 之间。
在将日期发送到服务器之前,是否有现有的函数可以在客户端在 jQuery 或 JavaScript 中验证这一点,以便我可以向用户提供反馈?我宁愿不必自己写(可能不完整)。
谢谢
我允许用户在页面上输入日期,并且我的一位测试人员正确地破坏了数据库保存并出现以下错误:
SqlDateTime 溢出。必须介于 1753 年 1 月 1 日上午 12:00:00 和 9999 年 12 月 31 日晚上 11:59:59 之间。
在将日期发送到服务器之前,是否有现有的函数可以在客户端在 jQuery 或 JavaScript 中验证这一点,以便我可以向用户提供反馈?我宁愿不必自己写(可能不完整)。
谢谢
javascript 重载>
和<
比较运算符来处理日期。
if (yourDate > new Date('1/1/1753 12:00:00 AM') &&
yourDate < new Date('12/31/9999 11:59:59 PM')) {
// date is in your valid range
} else {
// date is not in your valid range
}
http://jsfiddle.net/jbabey/UB9NR/
请记住,javascript 验证仅用于性能,不会增加安全性;它应始终辅以服务器端验证。
使用 Datepicker 插件http://jqueryui.com/demos/datepicker/#min-max 并使用日期范围方法限制用户输入错误范围
http://jqueryui.com/demos/datepicker/#date-range
代码
$(function() {
$( "#from" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function( selectedDate ) {
$( "#to" ).datepicker( "option", "minDate", selectedDate );
}
});
$( "#to" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onSelect: function( selectedDate ) {
$( "#from" ).datepicker( "option", "maxDate", selectedDate );
}
});
});