根据Datepicker日期范围从文本框输入的验证日期

时间:2013-03-20 04:47:31

标签: jquery datepicker

你有一个文本框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/

3 个答案:

答案 0 :(得分:5)

当我遇到有关datepicker的验证问题时,此链接对我很有用。

http://keith-wood.name/uiDatepickerValidation.html

答案 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/>