开发者

Django template get custom attribute from request OR "refresh" radio buttons

开发者 https://www.devze.com 2023-04-08 15:17 出处:网络
I currently have a template containing an html form, with the lines: {% for r in q1.responseoption_set.all %}

I currently have a template containing an html form, with the lines:

{% for r in q1.responseoption_set.all %}
     <span class="r"><input type="{{ q1.answer_type }}" name="r{{ r.id }}" id="r{{ forloop.counter }}"/>
     <label {% if q1.answer_type == "text" %}class="textanswer"{% endif %}for="r{{ forloop.counter }}">{{ r.text }}</label></span><br>
{% endfor %}

problem is, because they don't all have the same name (that's why, right?), if I pick a radio button, and then switch to another one, the first one still shows as selected.

However, at the moment, 开发者_如何学GoI need them to all have different names because I need to be able to identify the choices within my view, and as far as I can tell, all I can get from the request is [name, value], e.g. [r200, "on"]

The only way around this that I can think of is to insert a script that assigns a check event to each button, and then, once checked, inserts a hidden input with the name I want, but that seems messy.

SO, is there a way for me to either: get the button id from the request OR have the buttons "refresh" somehow as they are.


Keep the name the same, and set the value for each input choice to the answer id.

{% for r in q1.responseoption_set.all %}
     <span class="r"><input type="{{ q1.answer_type }}" name="{% questionId %}" value="r{{ r.id }}" id="r{{ forloop.counter }}"/>
     <label {% if q1.answer_type == "text" %}class="textanswer"{% endif %}for="r{{ forloop.counter }}">{{ r.text }}</label></span><br>
{% endfor %}
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号