我的表单中有一个输入字段日期,并希望添加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>
有关我做错的任何建议吗?
提前致谢。
答案 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
。