使用Javascript验证日期输入

使用Javascript验证日期输入,javascript,validation,date,Javascript,Validation,Date,我的表单中有一个输入字段日期,希望添加Javascript验证,以确保其始终大于今天的日期。我尝试了以下方法,但当用户单击输入字段并进行更改时,该函数似乎没有被调用 <input type="text" name="InsertRecordGuestOrders_Delivery_date" id="InsertRecordGuestOrders_Delivery_date" value=""/> <script type="text/javascript"> fun

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

函数validateDate()
{
var del_date=document.getElementById('InsertRecordGuestOrders_Delivery_date')。值;
if(Date.parse(del_Date)
对我做错了什么有什么建议吗


提前感谢。

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

document.getElementById('...').onChange = validateDate();
为此:

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

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

document.getElementById('...').onChange = validateDate();
为此:

document.getElementById('...').onChange = validateDate;
这一行:

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();
应该是:

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

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

此行:

document.getElementById('InsertRecordGuestOrders_Delivery_date').onChange = validateDate();
应该是:

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


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

使用document.getElementById(“…”).onchange=validateDate;泰米尔语-感谢您的快速回复!非常感谢。可能重复使用document.getElementById(“…”).onChange=validateDate;泰米尔语-感谢您的快速回复!我很感激。可能是Jbabey的副本-谢谢你的回答和解释。谢谢你的回答和解释。谢谢你的解释,特雷弗!顺便说一下,很好地抓住了“onchange”。我在JSFIDLE中试用了它,直到我更改了“onChange”->“onChange”之后它才起作用。谢谢你的帮助!再次感谢!谢谢你的解释,特雷弗!顺便说一下,很好地抓住了“onchange”。我在JSFIDLE中试用了它,直到我更改了“onChange”->“onChange”之后它才起作用。谢谢你的帮助!再次感谢!