簡體   English   中英

清除 bootstrap-datepicker 的值

[英]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');

兩個方法調用都需要,否則不清楚。

當前版本 1.4.0 有clearBtn選項

$('.datepicker').datepicker({
    clearBtn: true
});

除了向界面添加按鈕外,它還允許手動從輸入框中刪除值。

我在嘗試清除已經設置的日期時遇到了這個線程。 嘗試:

$('#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");

我建議您始終查看庫的文檔,這是我用於此目的的文檔。

bootstrap-datepicker 方法文檔

您可以使用此語法來重置引導日期選擇器

$('#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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM