3

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

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

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

谢谢!

罗恩

4

2 回答 2

5

您确定 Button 不会在其 kwargs 中使用 onclick 吗?

我刚刚onclick="javascript here"向一个Submit()元素添加了一个,它显示得很好。

我还仔细研究了底层代码,我认为默认情况下所有输入都会展平由于特殊用途(即模板)而未弹出的 kwarg,并将它们传递到呈现的 HTML 中。这可能是自 12 年 4 月(最初发布时)以来的新内容,但目前似乎很简单,如下所示:

self.helper.add_input(Button('back', "Back", css_class='btn', onclick="alert('Neat!');"))
于 2013-01-20T09:12:06.673 回答
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')
于 2012-05-31T08:31:54.917 回答