web-dev-qa-db-ja.com

bootstrap-datepickerの値をクリアします

ここからbootstrap-datepickerを使用しています: https://github.com/eternicode/bootstrap-datepicker

バージョン:2.3.2

ボタンがクリックされたときに、日付ピッカーの日付値をクリアするのに問題があります。 APIをチェックしましたが、datepickerのクリア/リセットで何も見つかりません。どんな助けも歓迎です

31
user2906420

JQueryを使用して、日付入力の値をクリアできます。

次のようなボタンとテキスト入力のある例:

<input type="text" id="datepicker">
<button id="reset-date">Reset</button>

JQueryの.val()関数を使用できます。

$("#reset-date").click(function(){
    $('#datepicker').val("").datepicker("update");
})
28
Needpoule

私は同様の問題を抱えていて、次のことがうまくいきました:

$('#datepicker').val('').datepicker('update');

両方のメソッド呼び出しが必要でしたが、そうでなければクリアされませんでした。

32
tunny

現在のバージョン1.4.0には clearBtnオプション があります。

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

インターフェイスにボタンを追加する以外に、入力ボックスから値を手動で削除できます。

20
Lu55

すでに設定されている日付を消去しようとしたときに、このスレッドに出会いました。試行:

$('#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()も必要でした。そうしないと、ウィジェットの状態が初期状態に再初期化されません。

これが他の人の助けになることを願っています。 :-)

6
JoelParke

実際には、このようなライブラリに付属のメソッドを使用すると、$(".datepicker").datepicker("clearDates");のようにはるかに便利です。

ライブラリのドキュメントを常に確認することをお勧めします。これは私がこれに使用したものです。

bootstrap-datepickerメソッドのドキュメント

5
Dimitri Acosta

この構文を使用して、bootstrap datepickerをリセットできます。

$('#datepicker').datepicker('update','');

参照 http://bootstrap-datepicker.readthedocs.org/en/latest/methods.html#update

4
Vinie

私は答えるのが遅すぎることを知っていますが、以下の私のシナリオではコードは機能していませんでした。

 $('#datepicker').val("");
 $('#datepicker').val('').datepicker('update');
 $('#datepicker').datepicker('update','');

これが私の解決策です。

 $('#datepicker').val('').datepicker('remove').datepicker();

最初に日付ピッカーの値をクリアしてから、日付ピッカーを削除し、再度日付ピッカーを再初期化しました。それは私の問題を解決しました。

1
Pradeep atkari

IE7/IE8で日付がクリアされなかった理由を見つけようとしたときに、このスレッドに出会いました。
IE8以前では、Array.prototype.splice()メソッドの2番目のパラメーターが必要であるという事実に関係しています。 bootstrap.datepicker.jsの元のコードは次のとおりです。

clear: function(){
    this.splice(0);
},

2番目のパラメーターを追加すると、問題が解決しました。

clear: function(){
    this.splice(0,this.length);
},
0
Airn5475