0
我使用的DateTimePicker從http://trentrichardson.com/examples/timepicker/JQuery的的DateTimePicker變化分鐘/的maxDate導致無限循環
的問題是,我有一個起點和終點輸入字段。我不希望用戶可以選擇晚於開始日期字段的結束日期時間。
輸入的字段是這樣的:
<input type="text" name="dateStart" id="dateStart" value="<?php echo $pageInfo['page_date_start'];?>" onChange="dateStartChange();" />
<input type="text" name="dateEnd" id="dateEnd" value="<?php echo $pageInfo['page_date_end'];?>" onChange="dateEndChange();" />
// Default date value = 0000-00-00 00:00:00
該設置的的DateTimePicker JScript的:
$('#dateStart').datetimepicker({
showSecond: false,
timeFormat: 'HH:mm:ss',
dateFormat: "yy-mm-dd",
});
$('#dateEnd').datetimepicker({
showSecond: false,
timeFormat: 'HH:mm:ss',
dateFormat: "yy-mm-dd",
});
而平變化的功能:
function dateStartChange(){
console.log("dateStartChange: " + $("#dateStart").val());
$("#dateEnd").datepicker('option', 'minDate', $("#dateStart").val());
}
function dateEndChange(){
console.log("dateEndChange: " + $("#dateEnd").val());
$("#dateStart").datepicker('option', 'maxDate', $("#dateEnd").val());
}
這個工程,除了一個偉大事情。如果我更改日期,然後點擊其它輸入字段,並選擇在同一天,它會導致一個無限循環,如果我檢查我的控制檯日誌:
和頁面(鉻)更改爲:
這是日期時間選擇器的問題還是我做錯了什麼?我不明白。
現在你說的話,它變得很清楚:D 1問題,那麼你認爲我可以用這個方法來阻止遞歸嗎? – Mathlight 2013-04-21 14:56:55
我通過使用布爾標誌解決了這樣的問題。像bCodeChange一樣。當您要修改另一個控件時,將其設置爲true,完成後將其設置爲false。然後在控件中,如果bCodeChange爲true,則退出,不要執行任何操作。但是,我找到了這種類似的東西。 – 2013-04-21 14:59:27
確實聽起來很醜,但我不認爲這會奏效。因爲如果我只點擊1次日期,控制檯會返回3倍的功能控制檯日誌(http://i.imgur.com/0ydySEx.jpg) – Mathlight 2013-04-21 15:11:43