從我所看到的例子,包括像這樣的一個JQuery的日期選擇器中不顯示上的刷新
jQuery Datepicker - refresh pickable days based on selected option
此代碼應工作。
這裏是我打電話給我的外部jQuery的腳本
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/ui/1.12.0/jquery-ui.js"></script>
我會注意到在它的問題我使用的是自舉的主題,但不必舉日期選擇器加載的情況下。
當我加載頁面日期選擇器加載罰款使用下面的代碼。 (我會注意到我使用的是jQuery的變化事件,但交換我的代碼的情況下,上面的回答更匹配它小東西我失蹤
$(function(ready){
$(function() {
$('#datepicker').datepicker({
format: "mm/dd/yy",
minDate: "+2W",
maxDate: "+6W"
});
});
});
HTML
<input type="radio" onchange="loadDatePicker()" tabindex="7" class="change" id="radio_1" name="freq" value="1"> Monthly <input type="radio" onchange="loadDatePicker()" tabindex="8" id="radio_2" class="change" name="freq" value="2"> Bi-Weekly
<input class="form-control" tabindex="9" onkeyup="slashfunc(this.id)" onchange="datefunc(this.id)" type="text" id="datepicker" value="{{date}}">
的輸出HTML是如下:
<input class="form-control hasDatepicker" tabindex="9" onkeyup="slashfunc(this.id)" onchange="datefunc(this.id)" type="text" id="datepicker" value="">
然後我點擊我的單選按鈕和下面的代碼被稱爲
function loadDatePicker(){
console.log("test")
$('#datepicker').datepicker("destroy");
if($("input[type='radio'][name='freq']:checked").val() == 1){
$('#datepicker').datepicker({
format: "mm/dd/yy",
minDate: "+2W",
maxDate: "+6W"
});
}else if($("input[type='radio'][name='freq']:checked").val() == 2){
$('#datepicker').datepicker({
format: "mm/dd/yy",
minDate: "+2W",
maxDate: "+2W10D"
});
}
$('#datepicker').datepicker("refresh");
}
我可以看到第二個輸入的變化,但它很快又回到
<input class="form-control hasDatepicker" tabindex="9" onkeyup="slashfunc(this.id)" onchange="datefunc(this.id)" type="text" id="datepicker" value="">
不過,現在的日期選擇器不再被點擊的日期選擇器輸入時出現。
datepicker消失的唯一可能原因是$('#datepicker')。datepicker(「destroy」);'。你確定你的複選框值沒有被其他地方操縱嗎?我在這裏試過你的代碼:http://jsfiddle.net/rvaldez/D4AGz/並且它按預期運行。 – Runcorn
@Runcorn我發現是什麼導致了這個問題。如果您有任何洞察,爲什麼這是一個問題,我很想知道它是什麼。 – StevenDStanton