Я теряю информацию о том, как вручную обновлять выбранное значение combobox, прежде чем запускать событие JQuery «change» для его получения сохраненного выбранного значения. Независимо от того, что я делаю, сохраненное выбранное значение в событии изменения пуст.Вручную значение combobox не работает перед запуском события изменения
Я использую сохраненные значения из базы данных, которая передается в javascript во время загрузки веб-страницы, и когда это делается, нужно, чтобы javascript повторно выполнил выбор combobox (&, выпустив еще несколько comboboxes [в этом случае, Марка, модель & Trim]).
Есть ли способ сделать эту работу? Поскольку я вручную выбрал его только один раз, он должен работать так же, как пользователь, выбирая combobox вручную с помощью мыши. Благодарю.
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
function AnimationBegin3() {
var $deferred = $.Deferred();
/* Start animation */
$deferred.resolve();
return $deferred;
}
function AnimationEnd3() {
var $deferred = $.Deferred();
/* End animation */
$deferred.resolve();
return $deferred;
}
function FormLoad_Years_Combobox(parmFormYearId) {
var formYearSelectedValue = "";
$('#' + parmFormYearId).on('change', function() {
formYearSelectedValue = ($('#' + parmFormYearId).val() == null ? "" : $('#' + parmFormYearId).val());
alert("This selected Year is " + formYearSelectedValue);
$('#' + parmFormYearId).empty();
AnimationBegin3().done(function() {
$('#' + parmFormYearId).append("<option value='2013'" + ("2013" == formYearSelectedValue ? " selected" : "") + ">2013</option>");
$('#' + parmFormYearId).append("<option value='2012'" + ("2012" == formYearSelectedValue ? " selected" : "") + ">2012</option>");
$('#' + parmFormYearId).append("<option value='2011'" + ("2011" == formYearSelectedValue ? " selected" : "") + ">2011</option>");
$('#' + parmFormYearId).append("<option value='2010'" + ("2010" == formYearSelectedValue ? " selected" : "") + ">2010</option>");
$('#' + parmFormYearId).append("<option value='2009'" + ("2009" == formYearSelectedValue ? " selected" : "") + ">2009</option>");
AnimationEnd3();
}).fail(function() { AnimationEnd3(); });
});
}
//Load webpage...
FormLoad_Years_Combobox('formYear');
//Trial #1...
//$('#formYear').val('2010').change();
//Trial #2...
//$('#formYear').val('2010').trigger('change');
//Trial #3...
//$('#formYear').trigger('change', function() { $('#formYear').val('2010'); });
//Trial #4...
//$('#formYear').val('2010');
//$('#formYear').trigger('change');
//Trial #5...
$('#formYear').val('2010');
$('#formYear').change();
});
</script>
</head>
<body>
<select id="formYear" name="formYear"></select>
</body>
</html>
Но «formYearSelectedValue» в следующей строке после «$ („#“+ parmFormYearId) .он („изменение“, функция() {» строка кода содержит пустое значение. Вы можете захватить источник код из сообщения и настройки с ним – fletchsod
Анимация асинхронна. Позвольте мне изменить мой ответ –
@fletchsod: Я добавил к своему ответу, чтобы помочь объяснить, что происходит, чтобы вызвать вашу проблему. –