Я связываю «загрузку» и «изменение» в коде jQuery. Моя цель: отключить какое-то поле на основе логики при загрузке страницы.
jQuery( document ).ready(function() {
//Question 34.1
jQuery('select#fever').bind('load change', function () {
var drug_reaction = jQuery(this).val();
if (drug_reaction== 1){
jQuery('input#fever_days').attr('disabled',false);
jQuery('select#character_of_fever').attr('disabled',false);
jQuery('select#evening_raise_of_temparature').attr('disabled',false);
jQuery('select#night_sweats').attr('disabled',false);
}else{
jQuery('input#fever_days').val("");
jQuery('input#fever_days').attr('disabled',true);
jQuery('select#character_of_fever').val("");
jQuery('select#character_of_fever').attr('disabled',true);
jQuery('select#evening_raise_of_temparature').val("");
jQuery('select#evening_raise_of_temparature').attr('disabled',true);
jQuery('select#night_sweats').val("");
jQuery('select#night_sweats').attr('disabled',true);
}
});
});
Когда я меняю раскрывающийся список лихорадки, он работает. Но при загрузке страницы я извлекаю данные из базы данных, и этот код не работает:
var drug_reaction = jQuery(this).val();
if (drug_reaction== 1){
jQuery('input#fever_days').attr('disabled',false);
jQuery('select#character_of_fever').attr('disabled',false);
jQuery('select#evening_raise_of_temparature').attr('disabled',false);
jQuery('select#night_sweats').attr('disabled',false);
}else{
jQuery('input#fever_days').val("");
jQuery('input#fever_days').attr('disabled',true);
jQuery('select#character_of_fever').val("");
jQuery('select#character_of_fever').attr('disabled',true);
jQuery('select#evening_raise_of_temparature').val("");
jQuery('select#evening_raise_of_temparature').attr('disabled',true);
jQuery('select#night_sweats').val("");
jQuery('select#night_sweats').attr('disabled',true);
}



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


load события запускаются для элементов, которые загружают данные из URL-адреса (например, вся страница, img элементы и iframe элементы).
Элемент select не загружает внешние данные, как и его потомки. Нет события загрузки.
Даже если бы он был, он уже был бы загружен к моменту запуска события ready.
Вместо этого инициируйте событие изменения как часть обработчика событий ready.
jQuery('select#fever')
.bind('change', function () { ... })
.trigger("change");