【问题标题】:django dropdownlist onchange submissiondjango dropdownlist onchange 提交
【发布时间】:2013-04-11 04:22:30
【问题描述】:

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

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 数据。但我发现的一切都与&lt;select&gt; 标记有关,比如调用一个javascript 函数onchange 选择元素。但是由于选择元素在 ModelChoiceField 表单中,我不知道该怎么做。 任何帮助将不胜感激!

【问题讨论】:

    标签: javascript python html django html-select


    【解决方案1】:

    解决了这个link

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

    【讨论】:

    • 如果我只想过滤显示的对象?我尝试了queryset=Day.objects.get(Q(day="15")).order_by('alias')queryset=Day.objects.filter(day="15").order_by('alias') 和许多其他选项都无济于事
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 2023-03-28
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      相关资源
      最近更新 更多