2012-04-13 85 views
3

我研究了Crispy-Forms文檔,並試圖在其中一個窗體中添加一個額外的按鈕。隨着Django Crispy Forms - 通過幫助程序添加按鈕

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

我可以添加一個漂亮的按鈕。但Button()不會採用onclick或on_click屬性。那麼,我該如何添加邏輯到這個按鈕?使用JQuery添加onclick事件不是一個很好的解決方案...

謝謝!

羅恩

回答

2

這不包括默認(AFAIK ..)。 如果你只需要這個曾經,可以使用脆皮HTML表單的Layout Object

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

是否確定按鈕將不會在其kwargs的onclick走?

我剛剛添加了一個onclick="javascript here"Submit()元素,它顯示正常。

我也盯着一個位在底層代碼,而且我認爲在默認情況下所有輸入壓扁未因特殊用途(即模板)殺出kwargs,並通過將那些經過渲染的HTML。這可能是自12年4月以來的新增(最初發布時),但它目前看起來像以下一樣簡單:

self.helper.add_input(Button('back', "Back", css_class='btn', onclick="alert('Neat!');"))