繁体   English   中英

用于日期范围验证的javascript

[英]javascript for date range validation

我有一个表单用户可以输入任何日期,但是我想设置一个日期范围验证。 例如:从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>

您需要更改以下三行:

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/

您需要获取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);

实际获得日期值后,您应该可以对其进行比较。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM