У меня вопрос о том, как условно скрыть или показать поле, основанное на выборе его родительского поля в Django.Как показать и скрыть поля формы на основе выбора из выпадающего меню в Django
** ОБНОВЛЕНИЕ: Я могу реализовать эту функцию этой функции, определив функцию в JavaScript, которая была протестирована с помощью некоторого простого HTML-кода. Однако, поскольку моя таблица ввода создается Django, может ли кто-нибудь сказать мне, как назвать эту функцию в Django 'onchange'? **
ОКОНЧАТЕЛЬНОЕ ОБНОВЛЕНИЕ: Я думаю, что для этого проще использовать jQuery. jQuery: Conditional show an element based on drop down box selection
Javascript: Объяснение: 1. Прежде чем сделать какой-либо выбор, можно увидеть только в раскрывающемся меню «Application» метод 2. Если один выбирает «Aerial Spray» из родительского окна, а затем новый выпадающее меню «Aerial Размер Dist» 3. Если один выбирает «Ground Spray» от родительского окна, а затем еще один выпадающий список «Первый тип спрей» потребуется ввод
<script type="text/javascript">
function display(obj,id1,id2) {
txt = obj.options[obj.selectedIndex].value;
document.getElementById(id1).style.display = 'none';
document.getElementById(id2).style.display = 'none';
if (txt.match(id1)) {document.getElementById(id1).style.display = 'block';}
if (txt.match(id2)) {document.getElementById(id2).style.display = 'block';}
</script>
<table>
<tbody align="center">
<tr><th>Application method:</th>
<td><select onchange="display(this,'A','B')" name="method" id="id_method">
<option value="">Pick a method</option>
<option value="A">Aerial Spray</option>
<option value="B">Ground Spray</option>
</select></td></tr></tbody>
<tbody id="A" align="center" style="display: none;">
<tr><th><label for="id_aerial_size_dist">Aerial Size Dist:</label></th><td><select select name="aerial_size_dist" id="id_aerial_size_dist">
<option value="" selected="selected">Pick first</option>
<option value="A1">Very Fine to Fine</option>
<option value="A2">Fine to Medium (EFED Default)</option>
</select></td></tr>
</tr>
</tbody>
<tbody id="B" align="center" style="display: none;">
<tr><th><label for="id_spray_type">Ground spray type:</label></th><td><select name="spray_type" id="id_spray_type">
<option value="B1" selected="selected">Low Boom Ground Sprayer (20 Inches or Less)</option>
<option value="B2">High Boom Ground Sprayer (20 to 50 Inches: EFED Default)</option>
</select></td></tr></tbody></table>
Django код, который не работает Теперь. Он нуждается в помощи обо всех определенных функциях 'display'.
updat, после добавления mark_safe код работает.
class GENEECInp(forms.Form):
application_method = forms.ChoiceField(required=True, choices=applicationmethod_CHOICES, initial='Aerial Spray',
widget=forms.Select(attrs={'onchange':mark_safe("display(this,'A','B','C','D');")})
Это вещь в JavaScript. Посмотрите на jQuery – icn
@icn, я новичок в программировании ... Возможно ли вам привести пример такого приложения? Спасибо! –