Посмотрите следующий пример:
<select id="connection" onchange="load_databases_of_this_connection();"></select>
<select id="database" onchange="load_tables_of_this_database();"></select>
<select id="table" onchange="load_columns_of_this_table();"></select>
<input id="fieldcode" type="text"/>
<input id="fieldcolor" type="text"/>
<script type="text/javascript" language="javascript">
$('#connection').change();
setTimeout("x()",2000 ); // select database and load tables
function x() {
$('#database').val( 'main_database' );
$('#database').change();
setTimeout("t()",2000 ); // select table and load columns
}
function t() {
$('#table').val( 'payments' );
$('#table').change();
setTimeout("a()",2000 ); // select columns
}
function a() {
$('#fieldcode').val( 'code' );
$('#fieldcolor').val( 'status' );
}
</script>
Этот код работает, но мне он не нравится.Что я хочу сделать, это загрузить значения впоследствии, когда «событие изменения» заканчивается (успешно или завершено), а затем вызвать следующий, например, если я делаю следующий пример без setTimeout, это не работает:
<code>
<script type="text/javascript" language="javascript">
$('#connection').change();
$('#database').val( 'main_database' );
$('#database').change();
$('#table').val( 'payments' );<br>
$('#table').change();<br>
$('#fieldcode').val( 'code' );
$('#fieldcolor').val( 'status' );
</script>
Iя пытаюсь сделать это с ajaxComplete, но я получаю бесконечный цикл, при каждом завершении ajax-вызова ajaxComplete называется ...:
$('#database').ajaxComplete( function (e) {
$('#table').val( 'payments' );
$('#table').change();
} );
ПОЖАЛУЙСТА, ПОМОГИТЕ!