开始日期:
<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));
}
就没有报错了