django dropdownlist onchange提交

时间:2013-04-18 06:56:48

标签: javascript python html django html-select

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

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函数一样。但由于select元素是ModelChoiceField形式,我不知道该怎么做。 任何帮助将非常感谢!

2 个答案:

答案 0 :(得分:13)

在此link

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

答案 1 :(得分:2)

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

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