这个问题与其他问题非常相似,但并不完全相同 - 所以请仔细阅读。
我在诸如生日之类的字段上使用datePicker - 我仅将范围限制为过去的日期。 我需要验证日期。输入不是只读的,我不希望它。
$(element).datepicker({
dateFormat: dateFormat,
changeMonth: true,
changeYear: true,
yearRange: "1900:2050",
maxDate: new Date,
constrainInput: "true",
currentText:"Today",
showButtonPanel: true,
onClose: function (dateText, inst){
dPickerDate=$('#'+this.id).datepicker("getDate");
pDate=$.datepicker.formatDate(dateFormat, dPickerDate);
if(dateText!=pDate)
{
$('#errorFor'+this.id).removeClass("hidden");
}
else
{
//do some calculations to save the date... for internal purposes
}
});
我的想法是检查输入的日期是否可以在日期选择器中选择 - 否则表示它无效。适用于验证目的。
问题是datePicker允许我输入不在日期范围内的日期。在fireBug中调试时,我可以看到datePicker的值实际上是无效的未来日期,即使它没有在datePicker中显示为选中。
有什么想法吗?在此先感谢:)
答案 0 :(得分:0)
是的,因为你没有进行任何输入验证。尽管您的yearRange是1900:2050,但这并不意味着用户无法通过键入键盘来输入其他年份。我建议只设置日期字段,以便只能通过datepicker ui访问,或者你可以创建一个函数来检查用户输入的日期。