javascript用于日期范围验证

时间:2012-12-04 23:30:27

标签: javascript date

我有一个表单用户可以输入任何日期,但我想设置一个日期范围验证。例如:从1-12-2012到1-1-2013并且系统不能接受来自不在范围内的用户的任何日期..我已经尝试过这个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>

3 个答案:

答案 0 :(得分: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/

答案 1 :(得分: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);

实际拥有日期值后,您应该能够比较它。

答案 2 :(得分:0)

除了必须设置变量“v2”的值之外,您还必须将其转换为Date对象,以便能够比较它们。