3

我有一个在模板中显示为下拉列表的表单。当用户选择一个选项时,将调用一个 javascript 函数并重新加载页面。我想使用 request.POST.get(...) 捕获所选选项的值,但我无法将提交设置为 POST。我发现了一些使用 ajax 的方法,但我不熟悉它。有没有更简单的方法呢?

主页.html:

<script>
    function refresh(){
        window.location.href = 'http://127.0.0.1:8000/home';
    }
</script>

<form>
    {{ days }}
</form>

模型.py:

class Date(models.Model):
    day = models.CharField(max_length=200, default='')
    month = models.CharField(max_lenght=200, default='')
    def __unicode__(self):
        return self.day

class CronForm(forms.Form):
    days = forms.ModelChoiceField(queryset=Date.objects.all().order_by('alias'), widget=forms.Select(attrs={"onChange":'refresh()'}))
4

2 回答 2

5

提交变更表格

class CronForm(forms.Form):
    days = forms.ModelChoiceField(queryset=Date.objects.all().order_by('alias'), 
           widget=forms.Select(attrs={"onChange":'submit()'}))

并将您的模板编辑为

<form method=post>
于 2013-04-18T08:11:42.403 回答
2

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

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" >
    $(function(){
        $('#id_days').change(function(){
            $('#id_of_form').submit();
        });
    });
</script>

<form id="id_form" method="post" action="." name="form_name" >
    {{ days }}
</form>
于 2013-04-18T08:13:28.230 回答