2

嗨有一个文本框日期选择器。用户可以从日期选择器中选择日期,也可以通过在文本框中键入手动输入日期。如果日期是手动输入的,我该如何验证输入是否在我的日期选择器的日期范围内?请帮忙。例如,我的日期选择器最大年份仅为 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/

4

2 回答 2

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;
}
于 2013-03-20T05:03:09.903 回答
1

您可以使用 input 元素的readonly属性来防止用户手动输入日期,例如

<input type="text" class="datepicker minimumSize" 
name="BirthDate" id="BirthDate" readonly/>
于 2013-03-20T06:17:02.437 回答