2012-04-13 12 views
3

私はCrispy-Formsのドキュメントを勉強しましたが、フォームの1つに余分なボタンを入れようとしました。Django Crispy Forms - ヘルパー経由でボタンを追加

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

いいボタンを追加できます。しかし、ボタン()はonclickまたはon_click属性を取ることはありません。どうすればこのボタンにロジックを追加できますか? JQueryでonclickイベントを追加することは非常に素晴らしい解決策ではありません。

ありがとう!

これはデフォルトで含まれていません

答えて

2

ロン(私の知る限り...)。 あなたは一度だけこれを必要とする場合、あなたはjQueryのを使用して何を嫌いクリスピー・フォームのHTML Layout Object

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

を使用することは可能でしょうか?あなたは、のようなものを使用して、このかなり簡単で、一般的な取り扱いができます

$('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') 
4

あなたはボタンがそのkwargsからでonclickを取らないことが確実な?

Submit()要素に追加したところ、問題なく表示されました。

私は基本的なコードでも少し覗いていましたが、私はすべての入力が特別な使用(テンプレート)のためにポップされないkwargsをデフォルトで平坦化し、それらをレンダリングされたHTMLに渡すと考えます。これは、12月4日(最初に投稿されたとき)以降に新しいかもしれませんが、現在のところ、次のように単純なようです:

self.helper.add_input(Button('back', "Back", css_class='btn', onclick="alert('Neat!');")) 
関連する問題