开始日期:
<input type="text" class="Wdate" id="startTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'endTime\')||\'new Date()\'}',readOnly:true})" style="width: 120px;"/>
<input type="text" class="Wdate" id="endTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'startTime\')}',maxDate:new Date(),readOnly:true})" style="width: 120px;"/>
结果为:
使用表单标签后:
起始日期:
<form:input path="startTime" type="text" class="Wdate" id="startTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',maxDate:'#F{$dp.$D(\'endTime\')||\'new Date()\'}',readOnly:true})" style="width: 120px;"/>
截止日期:
<form:input path="endTime" type="text" class="Wdate" id="endTime" onClick="WdatePicker({autoPickDate:true,dateFmt:'yyyy-MM-dd',minDate:'#F{$dp.$D(\'startTime\')}',maxDate:new Date(),readOnly:true})" style="width: 120px;"/>
结果为:
1.没有弹出时间了,原因是什么?在input中这样写,我也不知道为什么不会弹出时间,将此问题记录下来。
2.点击下一页没反应?
解决问题2:
当form表单中的数据是基本类型的时,直接请求action中的url,一点问题都没有。
但是当form表单总有时间类型的数据时,且对应的controller是用一个java对象来绑定对应form提交的数据时,就会出现问题。无法提交成功。
解决办法:
在对应的controller中新增下面的方法:
- /**
- * form表单提交 Date类型数据绑定
- * <功能详细描述>
- * @param binder
- * @see [类、类#方法、类#成员]
- */
- @InitBinder
- public void initBinder(WebDataBinder binder) {
- SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- dateFormat.setLenient(false);
- binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
- }
转自:点击打开链接
解决问题1:换种方式写代码
<form:input id="startTime" path="startTime" style="width: 120px;" class="Wdate" />
<form:input id="endTime" path="endTime" style="width: 120px;" class="Wdate" />
$(function() { $("#startTime").bind("click", { 'startId' : 'startTime', 'endId' : 'endTime' }, dateStart); $("#endTime").bind("click", { 'startId' : 'endTime', 'endId' : 'startTime' }, dateEnd); }) function dateStart(obj) { var sId = obj.data.startId; var eId = obj.data.endId; var maxda = ""; if ($("#" + eId).val() == "") { maxda = '%y-%M-%d'; } else { maxda = '#F{$dp.$D(\'' + eId + '\')}'; } WdatePicker({ el : sId, autoPickDate : true, minDate : '#F{$dp.$D(\'' + eId + '\',{d:-30});}', maxDate : maxda, dateFmt : 'yyyy-MM-dd' }); } //结束时间 function dateEnd(obj) { var Id = obj.data.startId; var eId = obj.data.endId; var maxda = ""; if ($("#" + eId).val() != "" && DateDiff($("#" + eId).val())) { maxda = '#F{$dp.$D(\'' + eId + '\',{d:+30});}'; } else { maxda = '%y-%M-%d'; } WdatePicker({ el : Id, autoPickDate : true, minDate : '#F{$dp.$D(\'' + eId + '\')}', maxDate : maxda, dateFmt : 'yyyy-MM-dd' }); } function DateDiff(str1) { var date1 = str1.split("-"); var strDate1 = new Date(date1[0], date1[1] - 1, date1[2]); var strDate2 = new Date();// 当前时间 return (strDate2.getTime() - strDate1.getTime()) / 1000 / 60 / 60 / 24 > 30; }
controller中添加:
@InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); }就没有报错了