【问题标题】:Django Crispy Forms - Add Button via HelperDjango Crispy Forms - 通过 Helper 添加按钮
【发布时间】:2012-04-25 20:46:27
【问题描述】:

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

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

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

谢谢!

罗恩

【问题讨论】:

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


    【解决方案1】:

    您确定 Button 不会在其 kwargs 中接受 onclick 吗?

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

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

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

    【讨论】:

      【解决方案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')
      

      【讨论】:

        猜你喜欢
        • 2021-09-22
        • 2014-02-10
        • 2016-02-14
        • 1970-01-01
        • 2023-03-24
        • 2017-05-04
        • 1970-01-01
        • 2018-02-16
        • 2012-06-29
        相关资源
        最近更新 更多