0

ユーザーが任意の日付を入力できるフォームを持っていますが、日付範囲の検証を設定したいと考えています。例: 2012 年 1 月 12 日から 2013 年 1 月 1 日まで、システムはユーザーからの範囲外の日付を受け入れることができません。日付が範囲外の場合..

これは私のフォームの一部です:

 echo "<tr><th> Date </th>
  <td> <input type='date' id ='v2' name='v2' value=''   ></td></tr>";


echo "<tr><th> Time </th>
    <td> <input type='time' name='v3' value=''   ></td></tr>";

    echo "<tr><th> Place </th>
<td> <input type='text' name='v4' value=''   ></td></tr>";

これはJavaScriptコードです

<script language="javascript">

function validation(form)
 {
 var v2 = document.getElementById('v2');
 var date = v2.value;
 if ( v2 > new Date('1/12/2012') && 
    v2 < new Date('1/1/2013')) {
    // date is in your valid range
     return true;
} else {
    // date is not in your valid range
    alert("date is not in the range")
     return false;
}


}

</script>
4

3 に答える 3

1

次の3行を変更する必要があります。

var date = v2.value;
 if ( v2 > new Date('1/12/2012') && 
    v2 < new Date('1/1/2013')) {

に:

var date = new Date(v2.value);
if (date > new Date('1/12/2012') && 
    date < new Date('1/1/2013')) {

ここで動作することを確認してください:http://jsfiddle.net/xGWpW/1/

于 2012-12-05T00:59:07.090 に答える
0

v2 入力フィールドの値を取得する必要があります。現時点では、あなたのコードは v2 が何であるかを知りません。入力に ​​ID を指定し、document.getElementById を使用することをお勧めします。

<td> <input type='date' id= 'v2input' name='v2' value=''   ></td></tr>";

次に、その値を取得して、スクリプトで比較できます。

var v2 = document.getElementById('v2input');
var date = new Date(v2.value);

実際に日付値を取得したら、それを比較できるはずです。

于 2012-12-04T23:35:10.213 に答える
0

変数「v2」の値を設定する必要があることとは別に、それらを比較できるようにするために、それも Date オブジェクトに変換する必要があります。

于 2012-12-04T23:36:14.193 に答える