3

ここで例を強調しました。

http://jsfiddle.net/aDxeE/

基本的に、別のイベント (構築時には不明) を"option","maxDate"datepicker コントロールに設定する必要があります。これはテキストボックスの値を「クリア」しますが、これは最初の構築ではそうではないため、非常に面倒です。

誰でも解決策を提供できますか?

編集:

5 行目を次のように変更します。

$("#myinput").datepicker("destroy");
$("#myinput").datepicker({minDate:new Date(), maxDate: new Date()});

期待どおりに機能しますが、非常に厄介なアプローチです。

4

6 に答える 6

2

フォーマットの問題です。初期値dd-mm-yyyyが日付ピッカーのデフォルト形式と一致しません。dateFormat解決するには、初期値を正しい形式に設定し、datepicker の作成時の形式を指定します。

フィドル

への変更:

<input id="myinput" type="text" value="01-01-1970" />

と:

//construct datepicker
$("#myinput").datepicker({minDate:new Date(), dateFormat : "dd-mm-yy"});
//later on, a seperate event changes the maxDate property
//but this 'clears' the existing value in the textbox!
$("#myinput").datepicker("option","maxDate", new Date());
于 2013-06-25T08:33:15.057 に答える
0

この質問はすでにここで回答されています: https://stackoverflow.com/a/8945264/2050459

最初のトラフ コード (setDate を使用) を設定するか、datepicker (ユーザー インタラクション) を開いて日付を設定する必要があります。

コードでそれを行う方法は次のとおりです:フィドル

$("#myinput").datepicker({
    minDate: new Date()
});
$("#myinput").datepicker("setDate", new Date());

あなたの例では、日付ピッカーを開いてからイベントをトリガーして maxDate を設定してみてください。アクティブな日付が設定されているため、入力がクリアされないことがわかります。

于 2013-06-25T09:14:12.380 に答える
0

入れてみてください $(document).ready(function(){..});

//construct datepicker
$(document).ready(function(){
$("#myinput").datepicker({minDate:new Date()});
//later on, a seperate event changes the maxDate property
//but this 'clears' the existing value in the textbox!
});
$("#myinput").datepicker("option","maxDate", new Date());

JSFiddleを確認してください。

参考までに:値の代わりにプレースホルダーを使用してくださいplaceholder="dd-mm-yyyy"

于 2013-06-25T08:30:47.283 に答える
0

手動で設定し直したらどうですか?

var d = $("#myinput").val();
$("#myinput").datepicker("option", "maxDate", "+2d").val(d);
于 2013-06-25T08:30:53.657 に答える
-1

Jqueryui DatePickerはテキストボックスの値をクリアしますか?

myinput = ID of datapicker

$("#myinput").val('');
于 2016-09-08T16:54:19.597 に答える