0

我的表单中有一个输入字段日期,并希望添加 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>

关于我做错了什么有什么建议吗?

提前致谢。

4

2 回答 2

5

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

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

对此:

document.getElementById('...').onChange = validateDate;
于 2013-04-03T16:57:25.690 回答
1

这一行:

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

应该:

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

注意括号不见了。如果您立即调用它,您将分配返回值validateDate()作为 onchange 处理程序。您希望将函数本身分配为处理程序,而不是函数的返回值。

另外,应该是onchange,不是onChange

于 2013-04-03T17:01:39.277 回答