ここからbootstrap-datepickerを使用しています: https://github.com/eternicode/bootstrap-datepicker
バージョン:2.3.2
ボタンがクリックされたときに、日付ピッカーの日付値をクリアするのに問題があります。 APIをチェックしましたが、datepickerのクリア/リセットで何も見つかりません。どんな助けも歓迎です
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");
のようにはるかに便利です。
ライブラリのドキュメントを常に確認することをお勧めします。これは私がこれに使用したものです。
この構文を使用して、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();
最初に日付ピッカーの値をクリアしてから、日付ピッカーを削除し、再度日付ピッカーを再初期化しました。それは私の問題を解決しました。
IE7/IE8で日付がクリアされなかった理由を見つけようとしたときに、このスレッドに出会いました。
IE8以前では、Array.prototype.splice()メソッドの2番目のパラメーターが必要であるという事実に関係しています。 bootstrap.datepicker.jsの元のコードは次のとおりです。
clear: function(){
this.splice(0);
},
2番目のパラメーターを追加すると、問題が解決しました。
clear: function(){
this.splice(0,this.length);
},