Если я правильно понимаю вашу проблему, вы можете получить доступ к кортежу в шаблоне:
<ul>
{# Assuming {{ field }} here is {{ form.rad }} #}
{% for choice in field.field.choices %}
<li>
<label for="id_{{ field.html_name }}_{{ forloop.counter0 }}">
<input type="radio"
id="id_{{ field.html_name }}_{{ forloop.counter0 }}"
value="{{ choice.0 }}"
name="{{ field.html_name }}" />
{{ choice.1 }}
{% if choice.0 == 'one' %}
{# Necessary field here #}
{{ form.bar }}
{% else %}
No Textbox
{% endif %}
</label>
</li>
{% endfor %}
</ul>
Если у вас есть элемент select, который выглядит следующим образом:
<select id="ddlViewBy">
<option value="1">test1</option>
<option value="2" selected="selected">test2</option>
<option value="3">test3</option>
</select>
Выполнение этого кода:
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
сделает strUser
равным 2
. Если вам действительно нужен test2
, сделайте следующее:
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].text;
Что сделает strUser
test2
Единственная причина, по которой, как я вижу, этот код не работает, заключается в том, что вы используете IE7- и забыли указать атрибут значения для своего
- теги ... Каждый другой браузер должен преобразовывать содержимое тегов открытия-закрытия в значение параметра.
var strUser = e.options[e.selectedIndex].value;
Это правильно и должно дать вам значение. Это текст, который вам нужен?
var strUser = e.options[e.selectedIndex].text;
Итак, вы понимаете терминологию:
<select>
<option value="hello">Hello World</option>
</select>
Эта опция имеет: