具有选定值的Django下拉[onChange]框,但无法获取选定值

时间:2019-02-06 16:10:10

标签: javascript html django drop-down-menu

我有一个下拉的标题选择,选择特定的标题后,将执行一个操作。

我所拥有的:

form.py

class CronForm(forms.Form): 
    title = forms.ModelChoiceField(queryset=GlobalFID.objects.all().order_by('-title_date'), widget=forms.Select(attrs={"onChange":'change_title()'}))

view.py [title_change_view]

my_form = CronForm() #initial=data
return render(request, 'research/title_result.html',{"my_form":my_form})

html

    <form method="post" >
        {% csrf_token %}
        {{ my_form }}
    </form>

并在js端:

function change_title()
{ 
    var murl= "{% url 'title_change_view' %}"; 
    window.location = murl; 
}

我的目标是在视图title_change_view中具有{{my_form}}中的SELECTED标题。重定向有效时,我无法获得所选值。

我考虑/尝试过的策略:

  1. 我在title_change_view中添加了if request.method == 'POST':,但它不是帖子(因此忽略了它),所以我看不懂表格。

  2. var murl= "{% url 'title_change_view' %}";添加其他参数?title=[SELCTED_VALUE],但无法弄清楚如何将SELECTED标题添加到murl或change_title()函数中。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

这根本不是正确的方法。重定向浏览器将永远不会提交任何数据。您需要实际发布它;就您而言,您只需提交表格即可。

<form id="my_form" method="post" action="{% url 'title_change_view' %}">
    {% csrf_token %}
    {{ my_form }}
</form>

...

function change_title() { 
    document.getElementById('my_form').submit();
}