Django下拉列表onchange提交

django dropdownlist onchange submission

本文关键字:提交 onchange 下拉列表 Django      更新时间:2023-09-26

我正在向用户展示这个表单中的下拉列表:

class CronForm(forms.Form):
    days = forms.ModelChoiceField(queryset=Day.objects.all().order_by('day'))
class Day(models.Model):
    day = models.CharField(max_length=200, default='')
    month = models.CharField(max_length=200, default='')
    def __unicode__(self):
        return self.day

在模板中显示如下:

<form method="post" onchange=change()>
    {{ days }}
</form>

我想要的是当用户从下拉列表中选择一个选项时提交这个表单。例如,可以将用户重定向到新的url,并且程序将在内部捕获POST数据。但是我发现的一切都与<select>标签有关,比如在select元素的更改上调用javascript函数。但是,由于选择元素是在ModelChoiceField表单中,我不知道如何做到这一点。任何帮助将非常感激!

解决以下链接

days = forms.ModelChoiceField(queryset=Day.objects.all().order_by('alias'), widget=forms.Select(attrs={"onChange":'refresh()'}))

使用firebug查找下拉列表的id。它应该是id_days,因为您使用的名称是days。然后将jQuery change事件绑定到它。

$(function(){
    $('#id_days').change(function(){
        $('#id_of_form').submit();
    });
});