標籤:
今天修改Bug,新到期時間為:原到期時間+續卡時間 而不是 當前日期+續卡時間。在修改的過程中發現一個Bug。那就是續卡時間數值框我輸入新數值A之後,點擊表單空白處,新到期時間並沒有修改過來,
再次點擊數值輸入框,輸入新的數值B後,新到期時間才更改過來,並且為之前的A+原到期時間。
檢查代碼:續卡時間框為onmouseout事件才去檢查數值修改新到期時間:
1 <td align="left"> 2 <input type="text" id="txtNum" style="width: 20px" runat="server" disabled="disabled" 3 onmouseout="changeDateNum()" class="validate[custom[onlyNumber]]" /> 4 <select style="width: 80px" onchange="changeDate()" id="selType"> 5 <option value="0">永久</option> 6 <option value="y">年</option> 7 <option value="q">季度</option> 8 <option value="m">月</option> 9 <option value="w">周</option>10 <option value="d">天</option>11 </select>12 </td>
我修改onmouseout為onchangge事件後,點擊空白處就會更新。
這兩個事件各有利弊,onmouseout事件可以在滑鼠離開輸入框的時候就觸發,但是要是輸入數值的時候滑鼠箭頭不在輸入框內的話,點擊表單空白處都不會觸發,就是輸入數值的時候滑鼠都不在輸入框內,然後輸入完成直接去儲存就會出錯。但是onchange事件(不同於extjs等的change事件,相應不及時,需要在離開焦點的時候觸發,這一點感覺很不好不是即時相應的)響應不及時需要失去焦點時觸發。
onmouseout事件與onchange事件分析