Django Crispy Forms - 通过助手添加按钮

时间:2012-04-13 13:22:48

标签: django forms button helper django-crispy-forms

我研究了Crispy-Forms文档,并尝试在我的一个表单中添加一个额外的按钮。与

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

我可以添加一个漂亮的按钮。但Button()不会采用onclick或on_click属性。那么我该如何为这个按钮添加逻辑呢?使用JQuery添加onclick事件不是一个非常好的解决方案...

谢谢!

罗恩

2 个答案:

答案 0 :(得分:4)

你确定Button不会在其kwargs中点击吗?

我刚刚向onclick="javascript here"元素添加了Submit(),它显示正常。

我还在底层代码中略微看了一下,我认为默认情况下所有输入都会压缩由于特殊用途而没有弹出的kwargs(即模板),并将它们传递给渲染的HTML。这可能是自12年4月(最初发布时)以来的新内容,但目前看起来很简单:

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

答案 1 :(得分:2)

默认情况下不包含此内容(afaik ..)。 如果您只需要一次,则可以使用crispy-forms 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')