我有一个表单用户可以输入任何日期,但我想设置一个日期范围验证。例如:从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>
答案 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')) {
答案 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对象,以便能够比较它们。