springMVC表單控件問題?

開始日期:

<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中新增下面的方法:

[java] view plain copy
  1. /** 
  2.      * form表單提交 Date類型數據綁定 
  3.      * <功能詳細描述> 
  4.      * @param binder 
  5.      * @see [類、類#方法、類#成員] 
  6.      */  
  7. @InitBinder    
  8. public void initBinder(WebDataBinder binder) {    
  9.         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
  10.         dateFormat.setLenient(false);    
  11.         binder.registerCustomEditor(Date.classnew CustomDateEditor(dateFormat, true));    
  12. }  

轉自:點擊打開鏈接


解決問題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));    
		}
就沒有報錯了
發佈了29 篇原創文章 · 獲贊 8 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章