[英]Clear the value of bootstrap-datepicker
我從這里使用 bootstrap-datepicker: https : //github.com/eternicode/bootstrap-datepicker
版本:2.3.2
單擊按鈕時,我無法清除日期選擇器的日期值。 我已經檢查了 API,但在清除/重置日期選擇器時找不到任何內容。 歡迎任何幫助
您可以使用 jQuery 清除日期輸入的值。
例如有一個按鈕和一個像這樣的文本輸入:
<input type="text" id="datepicker">
<button id="reset-date">Reset</button>
您可以使用 jQuery 的 .val() 函數。
$("#reset-date").click(function(){
$('#datepicker').val("").datepicker("update");
})
我遇到了類似的問題,以下對我有用:
$('#datepicker').val('').datepicker('update');
兩個方法調用都需要,否則不清楚。
我在嘗試清除已經設置的日期時遇到了這個線程。 嘗試:
$('#datepicker').val('').datepicker('update');
產生:
TypeError: t.dpDiv is undefined
https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js -- Line 8
認為可能需要為引導程序包含原始 Datepicker會消除錯誤,但隨后會導致原始 Datepicker 小部件出現! - 所以這顯然是錯誤的,不需要。
進一步看,jqueryui 的崩潰在於:
/* Generate the date picker content. */
_updateDatepicker: function(inst) {
this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
datepicker_instActive = inst; // for delegate hover events
inst.dpDiv.empty().append(this._generateHTML(inst));
this._attachHandlers(inst);
並且 inst.pdDiv 不存在。
進一步調查 - 我意識到需要的是:
$formControl = $duedate.find("input");
$formControl.val('');
$formControl.removeData();
這解決了我的問題。 注意我還需要 $formControl.removeData() 否則小部件的狀態不會重新初始化為初始狀態。
我希望這對其他人有幫助。 :-)
實際上,使用像這樣$(".datepicker").datepicker("clearDates");
這樣的庫附帶的方法更有用$(".datepicker").datepicker("clearDates");
我建議您始終查看庫的文檔,這是我用於此目的的文檔。
您可以使用此語法來重置引導日期選擇器
$('#datepicker').datepicker('update','');
參考http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update
我知道現在回答為時已晚,但在我的場景中,下面的代碼不起作用。
$('#datepicker').val("");
$('#datepicker').val('').datepicker('update');
$('#datepicker').datepicker('update','');
這是我的解決方案。
$('#datepicker').val('').datepicker('remove').datepicker();
我先清除了 datepicker 值,然后刪除了 datepicker 並再次重新初始化 datepicker。 它解決了我的問題。
我找到了最好的答案,它對我有用。 清除 bootstrap-datepicker 的值:
$('#datepicker').datepicker('setDate', null);
為 boostrap-datepicker 添加價值:
$('#datepicker').datepicker('setDate', datePicker);
我在試圖弄清楚為什么在 IE7/IE8 中沒有清除日期時遇到了這個線程。
這與 IE8 及更早版本需要 Array.prototype.splice() 方法的第二個參數有關。 這是 bootstrap.datepicker.js 中的原始代碼:
clear: function(){
this.splice(0);
},
添加第二個參數解決了我的問題:
clear: function(){
this.splice(0,this.length);
},
你必須這樣做:
$('#datepicker').datepicker('clearDates');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.