8

我正在向用户显示此表单的下拉列表:

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>标签有关,比如在选择元素的变化上调用一个 javascript 函数。但是由于选择元素在 ModelChoiceField 表单中,我不知道该怎么做。任何帮助将不胜感激!

4

2 回答 2

20

按照此链接解决

days = forms.ModelChoiceField(queryset=Day.objects.all().order_by('alias'), widget=forms.Select(attrs={"onChange":'refresh()'}))
于 2013-04-18T07:05:01.083 回答
2

使用firebug查找id下拉列表的。它应该与您使用的名称一样。然后将 jQuery事件绑定到它。id_daysdayschange

$(function(){
    $('#id_days').change(function(){
        $('#id_of_form').submit();
    });
});
于 2013-04-18T07:04:25.797 回答