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();
// 業務判斷
...
}
這樣就可以監聽到日期選擇後的值變化事件了。