Я хочу сделать три селекта, зависимые друг от друга, то есть выбрал что-то в первом, поменялись два других.
<script type="text/javascript">
selectors = new Array('ctlArtist','ctlAlbum','ctlSong');
var generateList = function(j) {
var options = '';
for (var i = 0; i < j.options.length; i++) {
options += '<option value="' + j.options[i].optionValue + '">' + j.options[i].optionDisplay + '</option>';
}
$("select#"+selectors[j.level]).html(options);
}
$(document).ready(function(){
$("select#ctlArtist").change(function(){
$.getJSON("select.php",{id: $(this).val(), level: 1}, generateList);
$("select#ctlAlbum").trigger("change");
});
$("select#ctlAlbum").change(function(){
$.getJSON("select.php",{id: $(this).val(), level: 2}, generateList);
});
});
</script>
Три селекта ctlArtist,ctlAlbum,ctlSong. Значения подгружаются из select.php. Когда выбираю что-нибудь в первом, во втором селекте должно произойти заполнение опциями второго селекта, а затем вызывается событие change для него, но он(второй селект) считает, что значения у него не поменялись! Меняются они судя по всему после функции-колбека, а нужно в самой функции.
Как это можно исправить?