django - 选择发布表格

ola*_*ndo 7 forms django post html-select submit

我制作了一个简单的django表单,其中包含一个选项列表(在单选按钮中):

class MyForm(forms.Form):
            choices=forms.ChoiceField( widget=forms.RadioSelect(), choices=[(k,k) for k in ['one','two','three']],label="choose one")
Run Code Online (Sandbox Code Playgroud)

我想在用户选择其中一个选项时自动提交表单.在简单的HTML中我会做到这一点

  <select name='myselect' onChange="FORM_NAME.submit();">
    ....
  </select>
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在不编写模板的情况下将其集成到表单类中.具体来说,我需要知道,FORM_NAME所以我可以打电话FORM_NAME.submit()给上面的代码片段.可以不使用模板吗?

Rei*_*cke 15

我想你不需要知道表格名称.这也应该有效:

<select name='myselect' onChange="this.form.submit();">
Run Code Online (Sandbox Code Playgroud)

将此集成到表单中的快速解决方案将涉及向窗口小部件添加属性.

widget=forms.RadioSelect(attrs={'onchange': 'this.form.submit();'})
Run Code Online (Sandbox Code Playgroud)

现在有人可能会争辩说,如果这与表单定义(分离定义,样式和行为)没有更好的分离,那应该这样做.

  • 内联事件处理作为元素属性?这是过去的爆炸!如果你可以包含jQuery并掌握它,我会采用这种方法,它允许你完全轻松地删除onChange属性,支持通过jQuery"文件就绪"将表单提交动作绑定到select元素更改事件"事件.这更好地显示为:`$(function(){$('#id_myselect').change(function(){this.form.submit();})});` (2认同)