監聽input輸入框值的變化,屬性爲readOnly的日期選擇框

1 需求
對日期選擇框值的變化進行監聽,當日期值不滿足限定的範圍時彈出提示:

<div>
	<label>起始日期<span class="red">*</span></label>
	<div style="width: 185px">
		<input id="startTime" name="startTime" class="Wdate" type="text" onclick="WdatePicker({maxDate:'#F{$dp.$D(\'addEndTime\')}'});"
			   nullmsg="起始日期不能爲空!" datatype="*1-64" autocomplete="off" readonly/>
	</div>
	<label>結束日期<span class="red">*</span></label>
	<div style="width: 185px;">
		<input id="endTime" name="endTime" class="Wdate" type="text" onclick="WdatePicker({minDate:'#F{$dp.$D(\'addStartTime\')}'});"
			   nullmsg="結束日期不能爲空!" datatype="*1-64" autocomplete="off" readonly/>
	</div>
</div>

2 問題
給id="startTime"的input輸入框設置change、propertychange事件都不起作用,此時的change事件和WdatePicker控件的事件衝突了。

3 解決
查看WdatePicker的源碼後,發現其中有個onpicked的事件函數,即日期選擇後的處理函數,所以給輸入框設置了onpicked監聽事件及對應的處理函數validStartDate,代碼如下:

<div>
	<label>起始日期<span class="red">*</span></label>
	<div style="width: 185px">
		<input id="startTime" name="startTime" class="Wdate" type="text" onclick="WdatePicker({maxDate:'#F{$dp.$D(\'addEndTime\')}',
		       onpicked: validStartDate});"
			   nullmsg="起始日期不能爲空!" datatype="*1-64" autocomplete="off" readonly/>
	</div>
	<label>結束日期<span class="red">*</span></label>
	<div style="width: 185px;">
		<input id="endTime" name="endTime" class="Wdate" type="text" onclick="WdatePicker({minDate:'#F{$dp.$D(\'addStartTime\')}'});"
			   nullmsg="結束日期不能爲空!" datatype="*1-64" autocomplete="off" readonly/>
	</div>
</div>

validStartDate() 方法如下:

function validStartDate() {
	var inputVal = $("#addStartTime").val();
	// 業務判斷
	...
}

這樣就可以監聽到日期選擇後的值變化事件了。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章