私は自分で書いたカスタムjs/widgetを持つdjangoのウェブサイトを持っています。 JSコードのアイデア与えるために:私は、これはDjangoのウィジェットにコードをJSグルーフォームとコードにそれを結ぶ必要があるためajax/replacementの後にjsウィジェットを再バインドするベストプラクティス?
$(document).ready(function() {
$(".input_group_text_clear button").on("click", function (e) {
data_action = $(this).attr('data-action');
data_target = $(this).attr('data-target');
$.each(data_target.split(':'), function(i, target) {
$("#" + target).val("").trigger("change");
});
e.preventDefault();
});
});
は今、これは非常にうまく機能したテンプレートに含まれています。
問題は、よくajaxを使用してフォームを投稿し、エラー/ブロックを含むレンダリングされたフォームがjson APIを介して返されることです。次に、フォーム要素をエラーを含むものに「置き換える」。
問題は、コントロールを再バインドする必要があることです。そうでなければ、コントロールは明らかに計画どおりに機能しません。私は通常、グローバル関数で "バインド"コードを抽出し、それをajax/doneハンドラから呼び出しますが、フォームにどのようなコントロールがあるのかを仮定する必要があるので、私は本当に好きではありません。そのような要素の置換のためのベストプラクティスは、バインディングのjs関数と組み合わせていますか?
ヘルプを大幅に ポール
感謝。 "self.helper.include_media = True"(私はフォームをレンダリングするためにdjango crispyフォームを使用しています)を設定するオプションも見つかりました。これは実質的に/ htmlという形式のjavascriptコードを出荷し、最初はそれを実行するので、私は手動で何も起動する必要はありません....これはすべてのブラウザで動作しますが、少なくともクロムが動作するかどうかはわかりません。 –