У меня есть форма, которая не позволяет создавать «условия». Первый радиовход выбирает «да» или «нет», затем можно выбрать «другое», и появляется свободное текстовое поле. Проблема в том, что если я заполню первый переключатель, а затем выберу второй, все будет сброшено. Я бы хотел, чтобы он сбрасывал только поля, присущие si или no и другим.
Код: Выделить всё
const $rads = $("input[type='radio']").on("change", function() {
let siClicked = this.id === 'documentazione_Sì';
let noClicked = this.id === 'documentazione_No';
const showAltro = this.id === 'documentazione_nono_altro' || this.id === 'documentazione_ok_altro';
if (siClicked || noClicked) {
$rads.each(function() { // uncheck all rads
this.checked = false;
});
this.checked = true; // check the clicked rad
}
let si = $('#documentazione_Sì').is(":checked");
let no = $('#documentazione_No').is(":checked");
$("#documentazione_ok")
.toggle(si)
.prop('required', si);
$('#documentazione_nono')
.toggle(no)
.prop('required', no);
// showAltro could also be set using the altro checked prop
$("#altro-manuali").toggle(showAltro);
$("#altro-manuali").prop('required', showAltro);
});Код: Выделить всё
#documentazione_ok {
display:none;
}
#documentazione_nono {
display:none;
}
#altro-manuali {
display:none;
}Код: Выделить всё
Title
1
2
3
4
5
Sì
No
1
2
Altro
3
4
5
Altro
Источник: https://stackoverflow.com/questions/781 ... ion-change
Мобильная версия