Django中没有提交按钮的表单

Mad*_*ham 2 javascript django

我看到没有按钮的表单非常流行(就像这里)。在用户选择字段(示例 1)或输入文本并单击某些内容(这意味着完成输入)(示例 2)后,如何创建一个将在 Django 中自动提交两个不同字段的表单:

1.) 选择字段

表格.py

class Search(forms.Form):
    field = forms.ChoiceField(choices=MY_CHOICES)
Run Code Online (Sandbox Code Playgroud)

视图.py

if request.method == "GET":
    form = Search(request.GET)
    if form.is_valid():
    print('it's work')
Run Code Online (Sandbox Code Playgroud)

模板.html

<form method="GET">
  {% csrf_token %}
  {{ form }}
</form>
Run Code Online (Sandbox Code Playgroud)

2.) 字符字段

表格.py

class Search(forms.Form):
    field = forms.CharField(max_length=10)
Run Code Online (Sandbox Code Playgroud)

*其他文件如上

Edo*_*iel 8

您可以简单地更改forms.py

class Search(forms.Form):
    field = forms.ChoiceField(choices=MY_CHOICES,
        widget=forms.Select(attrs={'onchange': 'submit();'}))
Run Code Online (Sandbox Code Playgroud)

无需添加任何其他内容,无需 jquery。

另请参见此处


Rin*_*yen 6

您可以像这样在模板中使用 jquery:

$('#search_field').change(function(){
    $('#your_form').submit()
});
Run Code Online (Sandbox Code Playgroud)

或者当用户点击某物时:

$('#something').click(function(){
    $('#your_form').submit()
});
Run Code Online (Sandbox Code Playgroud)