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

これは私にとって完璧に機能します。

まず、日付の構文を検証する必要があります。日付が有効な日付であるとします。次に、uはこれを行うことができます。

  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

readonlyユーザーが手動で日付を入力するのを防ぐために、input 要素の属性を使用できます。

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