我在表单中使用jQuery日期选择器日历。提交后,表单会通过URL将params传递给第三方网站。除了一件事,一切都很好。 如果随后删除了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]"/>
答案 0 :(得分:3)
这真的很古老,可能已经解决了,但是到底是什么。
最简单的方法是在输入的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]'; } " />
当然它们仍然是与日期验证相关的各种其他问题,但这是检查空白值并根据当前代码结构返回默认值的直接方法。