0

我有一个表单用户可以输入任何日期,但我想设置一个日期范围验证。例如:从 2012 年 1 月 12 日到 2013 年 1 月 1 日,系统无法接受来自用户的任何不在该范围内的日期。我试过这个 javascript 代码,但它甚至没有给我任何警报当日期不在范围内时..

这是我的表格的一部分:

 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

您需要更改以下三行:

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 回答