为清晰编辑:
在我的选择下拉列表中有一个饮料列表。根据所选择的内容,我希望网页呈现drink所具有的成分(我可以从标记函数drink_joins中获得)。
第一个问题是下拉菜单的值被设置为第一个值,即使用户选择了一个不同的值。
<select>
{% for drink in drinks %}
<option id="dropdown" value="{{drink.drink_name}}">{{drink.drink_name}}</option>
{% endfor %}
</select>
即这里function myFunc(){x = document.getElementById('dropdown').value}
只会得到drinks中的第一个元素,无论在下拉菜单中选择什么。
第二个问题是,一旦这是固定的,我怎么能传递该值到我的标签,没有它在for循环?例如,{{'Margarita'|drink_joins}}
将返回正确的列表,但我不知道如何在那里放置一个变量。
<select>
{% for drink in drinks %}
<option id="dropdown" value="{{drink.drink_name}}">{{drink.drink_name}}</option>
{% endfor %}
</select>
<p> {{ [needs string of dropdown value] | drink_joins }}</p>
问题id="dropdown"
在每个option
中设置,它应该是select
的id。<select id="dropdown">
你不能动态地改变模板标签的值,当js在客户端时,这些是在服务器端处理的。
我建议使用ajax,用过滤器的逻辑创建视图,用select的值发送请求。