【问题标题】:jQuery/JavaScript Date form validationjQuery/JavaScript 日期表单验证
【发布时间】:2026-02-23 02:45:02
【问题描述】:

我在表单中使用 jQuery 日期选择器日历。提交后,表单通过 url 将参数传递到第三方站点。一切正常,除了一件事。 如果随后删除了 datepicker 日历插入到日期字段中的值,或者如果删除了页面加载时表单中的默认日期并提交了表单,则会收到以下错误:

“从字符串“”到类型“日期”的转换无效。”

我的问题的解决方案非常简单,我想验证提交日期的文本字段,如果该字段因任何原因为空,则发送默认日期(当前日期)。问题是我在 Javascript 方面很糟糕,无法弄清楚如何做到这一点。

这是我的日期字段的表单代码。

[var('default_date' = date)]
<input type="text" id="datepicker" name="txtdate" value="[$default_date]" onfocus="if (this.value == '[$default_date]') this.value = '';" onchange="form.BeginDate.value = this.value; form.EndDate.value = this.value;" />
            <input type="hidden" name="BeginDate" value="[$default_date]"/>
            <input type="hidden" name="EndDate" value="[$default_date]"/>

【问题讨论】:

    标签: javascript jquery validation forms webforms


    【解决方案1】:

    这真的很老,可能已经解决了,但到底是什么。

    最简单的方法是在输入的 onchange 事件中添加更多的 javascript。

    onchange="if( this.value.length > 0 ) { form.BeginDate.value = form.EndDate.value = this.value; } else { form.BeginDate.value = form.EndDate.value = '[$default_date]'; } " />
    

    当然,它们仍然是与日期验证相关的各种其他问题,但这是检查空白值并根据您当前的代码结构返回默认值的直接方法。

    【讨论】: