Как отключить радиокнопку django forms в зависимости от значения радиокнопки anotehr
У меня есть форма Django с двумя наборами радиокнопок. Я хотел бы блокировать два варианта выбора во втором наборе в зависимости от выбранной кнопки в первом наборе.
Как я могу это сделать? Нужно ли мне написать для этого функцию в представлениях?
forms.py
DOWNLOAD_CHOICES = [("all", "All values"),
("all_divide", "All values separated per IfcType"),
("unique", "Unique values"),
("unique_divide", "Unique values separated per IfcType")]
FORMAT_CHOICES = [("xlsx", "Excel (.xlsx)"),
("csv", "comma-separated values (.csv)")]
class DownloadForm(forms.Form):
file_format = forms.ChoiceField(choices=FORMAT_CHOICES, widget=forms.RadioSelect())
file_download = forms.ChoiceField(choices=DOWNLOAD_CHOICES, widget=forms.RadioSelect())
model_form_download.html
<form action="" name="" method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Download">
</form>
Я думаю, что мой views.py не имеет отношения к этому вопросу, поэтому я не буду публиковать его сейчас. Все равно он слишком длинный...
Вам необходимо использовать Javascript. Например, используя jQuery:
function setOptions() {
if ($("input[name=file_download][value=unique]").prop('checked')) {
$("input[name=file_format][value=csv]").prop('disabled', true);
} else {
$("input[name=file_format][value=csv]").prop('disabled', false);
};
$('input[name="file_download"]').change(function () {
setOptions();
};
setOptions();