使用Javascript验证日期输入

时间:2013-04-03 16:55:05

标签: javascript validation date

我的表单中有一个输入字段日期,并希望添加Javascript验证以确保它始终大于今天的日期。我尝试了以下操作,但是当用户单击输入字段并进行更改时,似乎不会调用该函数。

<input type="text" name="InsertRecordGuestOrders_Delivery_date" id="InsertRecordGuestOrders_Delivery_date" value=""/>

<script type="text/javascript">

function validateDate()
{
var del_date = document.getElementById('InsertRecordGuestOrders_Delivery_date').value;

if (Date.parse(del_date) < Date.now()) {
    document.getElementById('InsertRecordGuestOrders_Delivery_date').value = '';
    alert("Delivery date has to be later than today");
    }
}

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();

</script>

有关我做错的任何建议吗?

提前致谢。

2 个答案:

答案 0 :(得分:5)

您希望将validateDate函数分配给onchange属性,而不是执行该函数并分配其返回值。改变这个:

document.getElementById('...').onChange = validateDate();

到此:

document.getElementById('...').onChange = validateDate;

答案 1 :(得分:1)

这一行:

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();

应该是:

document.getElementById('InsertRecordGuestOrders_Delivery_date').onchange = validateDate;

注意括号已经消失。如果立即调用它,则将validateDate()的返回值指定为onchange处理程序。您希望将函数本身指定为处理程序,而不是函数的返回值。

此外,它应该是onchange,而不是onChange