你有一个文本框datepicker。用户可以从datepicker中选择日期,也可以通过在文本框中键入来手动输入日期。如果手动输入日期,如果在日期选择器的日期范围内,我如何验证输入?请帮忙。例如,我的日期选择器最大年份仅为1995年,因此不允许用户输入日期,例如01/25/1996。
HTML
Date of Birth (MM/DD/YYYY):
<input type="text" class="datepicker minimumSize"
name="BirthDate" id="BirthDate"/>
的JavaScript
var d = new Date();
var year = d.getFullYear() - 18;
d.setFullYear(year);
$('#BirthDate').datepicker({
changeYear: true,
changeMonth: true,
yearRange: '1920:' + year + '',
defaultDate: d});
$('#BirthDate').blur(function(){
//Validate input
});
的jsfiddle http://jsfiddle.net/jobzky/wUpQG/
答案 0 :(得分:5)
当我遇到有关datepicker的验证问题时,此链接对我很有用。
答案 1 :(得分:2)
这对我来说很完美。
首先,您必须验证日期语法。假设日期是有效日期。然后,你可以做到这一点。
var from_date_monthfield = valid_from.split("/")[1];
var from_date_dayfield = valid_from.split("/")[0];
var from_date_yearfield = valid_from.split("/")[2];
//上面的拆分取决于你的日期格式
var from_date = new Date(from_date_yearfield, from_date_monthfield-1, from_date_dayfield);
var cur_date = new Date();
if(!(from_date > cur_date.setDate(cur_date.getDate() - 1))) // set date as 1995 here and your logic here
{
return false;
}
return true;
}
答案 2 :(得分:2)
您可以使用输入元素的readonly
属性,以防止用户手动输入日期,例如。
<input type="text" class="datepicker minimumSize"
name="BirthDate" id="BirthDate" readonly/>