可能重复:
Using Javascript, how do I make sure a date range is valid?
我允许用户在页面上输入日期,并且我的一位测试人员正确地破坏了数据库,并出现以下错误:
SqlDateTime溢出。必须在1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。
在将日期发送到服务器之前,是否有现有功能在jQuery或JavaScript中在客户端验证这一点,以便我可以向用户提供反馈?我不想写自己的(可能是不完整的)。
由于
答案 0 :(得分:2)
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验证仅适用于性能并且不会增加安全性;它应该始终补充服务器端验证。
答案 1 :(得分:1)
您可以尝试jQuery验证plugin来在客户端处理此问题。 但不要只在客户端进行。在发送到DB之前,始终始终始终在服务器端执行此操作。
根据jQuery docs,代码可以很简单。
$("#myform").validate({
rules: {
field: {
required: true,
date: true
}
}
});
如果您想要自定义日期格式,则answer值得查看
答案 2 :(得分:1)
使用Datepicker插件http://jqueryui.com/demos/datepicker/#min-max 并使用日期范围方法
限制用户输入错误的范围http://jqueryui.com/demos/datepicker/#date-range
<强> CODE 强>
$(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 );
}
});
});
答案 3 :(得分:1)
您需要date js库。我认为这个功能正是你要找的 Date.validateDay 。请参阅documentation