1

MVCレコードを編集および追加するために次のコードを使用して、jQueryUIダイアログに2つの部分ビューをロードしています。

$.get(url, function(data)
{
    dialogDiv.html(data);

            var $form = $(formid);

            $form.unbind();
            $form.data("validator", null);

            $.validator.unobtrusive.parse(document);

            var dat = $form.data("unobtrusiveValidation");
            var opts = dat ? dat.options || '' : '';
            $form.validate(opts);


            //THIS FUNCTION ADDS PLUGINS ETC.
            runEditCreateStartScripts();

            dialogDiv.dialog('open');
});

機能を配線する機能は以下のとおりですchosen

function runEditCreateStartScripts(){
    $("select.chzn-select").chosen(
           { 
                no_results_text: "no match", 
                allow_single_deselect: true 
            });
}

最初の呼び出しですべてが完璧です。1つのダイアログを開いた後、数回編集すると言うと、すべてが壊れています。hyperlink選択したものの代わりにのみ利用可能です。これは、1つのダイアログを開いて、[追加]、[2番目のダイアログ]の順に開いた場合にも発生します。最初のもの(追加)からのバインディングおよびその他の機能はなくなりました。

なぜこれが起こっているのかについての洞察はありますか?

4

1 に答える 1

0

私の問題の原因となった問題は、AJAX 経由で読み込んでいたモーダルに、既にページにある入力フィールドとして同じ ID を持つ入力があったことでした (モデル フィールド用の汎用 ID ジェネレーターを持つ Django を使用)。これにより、セレクターで .chosen() を再トリガーすると、2 つの入力間で衝突が発生しました。ID フィールドを一意にすると、すべてが期待どおりに機能しました。これが役に立ったことを願っています。

于 2013-01-15T03:23:14.593 に答える