我研究了Crispy-Forms文档,并尝试在我的一个表单中添加一个额外的按钮。与
self.helper.add_input(Button('back', "Back", css_class='btn'))
我可以添加一个漂亮的按钮。但Button()不会采用onclick或on_click属性。那么我该如何为这个按钮添加逻辑呢?使用JQuery添加onclick事件不是一个非常好的解决方案...
谢谢!
罗恩
答案 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')