1

みんなの麺を焼くものはここにあります。Web サイトにフォームがあります。あなたはそれを見ることができます:私のウェブサイト. [予約する] をクリックし、右上にある特定の日数を選択します。「-」ボタンを使用して、フォームからいくつかのフォーム行を手動で削除します。次に、最初の行の最初の入力を使用してみてください。間違った入力にリンクされています。すべての入力には一意の ID 属性があり、行が削除された後に datetimepicker クラスを再バインドします。datetimepicker が間違ったオブジェクトを指している理由を誰でも知っていますか? 皮肉なことに、適切な jQuery UI からのものではない timepicker 部分は、依然として正しい入力を指しているように見えます。より低い番号の行を削除すると、より高い番号の行が移動されて名前が変更されるようですが、日時ピッカーの日付部分は、それが意味をなす場合、最初にバインドされていた行番号をまだ指しています.

これは私を困惑させたので、助けていただければ幸いです。フォーム行を削除する前に datepicker オブジェクトを手動で解放しようとしましたが、何も役に立たないようです。

ありがとう

編集:入力要素にバインドされている日付ピッカーのインスタンスを削除する前に完全に破棄する方法はありますか?

編集: わかりました、私は気づきました。削除しようとしている行の日付ピッカーを破棄していますが、残っている行は破棄していません。そのため、これにしばらく取り組み、フォームを再構築するときに日付ピッカーを完全に破棄することが役立つかどうかを確認します。

4

3 に答える 3

1

そのすべてのコードを分析する時間はありませんが、再バインドする前に$(elem).datetimepicker('destroy')コントロールを削除するときに呼び出すのに役立つ可能性があります。

于 2013-02-27T15:19:19.147 に答える
1

setAlts()

削除してみてくださいvar fields = $('.date').get();

そしてちょうどやっている:

$('.date').each(function() {

    $(this).datetimepicker('destroy'); // From Marcell
    $(this).datetimepicker({
            minDate: now,
            timeFormat: "h:mm tt",
            stepMinute: 15,
        });
});

すべて削除すればdateCheck()問題ありません。

以下はあなたが意図しているものだと思いますdateCheck()。わかりましたdateCheck()

変化する:

target.siblings('.date').datetimepicker('setDate', dateMin);

に:

target.next('.date').datetimepicker('minDate', dateMin);

于 2013-02-27T15:24:25.323 に答える
0

さて、質問に答えるために:振り返ってみると明らかなようですが、わずかに異なる、おそらく効率の悪い方法でコード化されたdatetimepickerアドオンは、私を道から外していました。とにかく、何が起こっているのかを明確に説明しようと思います。

datepickerオブジェクトは、作成時に要素のIDにバインドされ、破棄されるまでそのIDを保持します。そして明らかに、datepickerオブジェクトがすでに存在する場合、新しいdatepickerオブジェクトをバインドしようとしても何も起こりません。

この問題を解決するために、setAlts()メソッドで、すべてのdatepickerオブジェクトを破棄し、それを再作成しました。非常に単純ですが、それは私を混乱させました。

そして、私を正しい道に導いてくれてありがとう。そうでなければ、私はおそらくチンパンジーを持っていて、壁に私のうんちを塗り始めていたでしょう。

于 2013-02-27T15:53:57.177 に答える