Несколько вещей:
1) Я бы добавил класс (я использовал .additional-field ниже) к каждому из дополнительных полей.Это позволит вам скрыть их всех одним махом, вместо того, чтобы требовать $.hide()
каждого явно.Это не так уж и плохо с тремя, но если бы вы получили гораздо больше, это бы быстро заработало.
2) Я помещаю код в функцию и вызываю эту функцию при загрузке страницы и использую ее.в качестве параметра .change()
.Это позволяет избежать повторения одного и того же кода и покрывает случай начального значения от редактирования существующего или ошибки в форме, которую необходимо исправить.В противном случае дополнительное поле не будет отображаться, пока вы не выберете что-то другое, а затем снова выберете элемент.
$(document).ready(function(){
function toggleBusinessTypeAdditionalFields() {
$('.additional-field').hide();
var selected = $('#business-type').val();
switch (selected) {
case 1:
$('#soletrader').show();
break;
case 3:
$('#publicsector').show();
break;
case 5:
$('#charity').show();
break;
}
}
toggleBusinessTypeAdditionalFields();
$('#business-type').change(toggleBusinessTypeAdditionalFields);
});