3

Crispy-Formsのドキュメントを調べて、フォームの1つに追加のボタンを入れようとしました。と

self.helper.add_input(Button('back', "Back", css_class='btn'))

素敵なボタンを追加できます。ただし、Button()はonclickまたはon_click-attributeを取りません。では、どうすればこのボタンにロジックを追加できますか?JQueryでonclickイベントを追加することは、非常に優れたソリューションではありません...

ありがとう!

ロン

4

2 に答える 2

5

Buttonがそのkwargsでonclickを取得しないことを確信していますか?

要素にを追加したonclick="javascript here"ところ、正常に表示されました。Submit()

また、基になるコードを少し調べました。すべての入力は、デフォルトで、特別な使用(つまりテンプレート)のためにポップされないkwargをフラット化し、レンダリングされたHTMLに渡します。これは、2012年4月(最初に投稿されたとき)から新しい可能性がありますが、現在は次のように単純なようです。

self.helper.add_input(Button('back', "Back", css_class='btn', onclick="alert('Neat!');"))
于 2013-01-20T09:12:06.673 に答える
2

これはデフォルトでは含まれていません(afaik ..)。これが一度だけ必要な場合は、クリスピーフォームのHTMLレイアウトオブジェクトを使用できます

HTML('<input type="button" name="Save" onclick="do_whatever" />')

それでは、jQueryの使用で何が嫌いですか?次のようなものを使用して、これをかなり簡単で一般的に処理できます。

$('form :submit.ajax_submit').live('click', function(e) {
    e.preventDefault();
    var my_form = $(this).parents('form');

    // do whatever
    alert(my_form.attr('id'));
    alert(my_form.attr('action'));
});

次に、クラスに合格します。

Submit('save', 'save', css_class='ajax_submit')
于 2012-05-31T08:31:54.917 に答える