JQuery выбран вариант, работающий только в отладке
У меня есть элемент select, который я хочу установить на определенное значение при загрузке страницы:
<select id="Town">
<option value="">Select...</option>
<option value="4004">Town A</option>
<option value="4005">Town B</option>
<option value="4006">Town C</option>
<option value="4007">Town D</option>
<option value="4008">Town E</option>
<option value="4003">Town F</option>
</select>
Когда я пытаюсь установить выбранную опцию через эту строку кода:
var SelectedTown = '4005';
jQuery('select#Town>option[value=' + SelectedTown + ']').attr('selected','selected');
он не работает в режиме запуска, я имею в виду, что видимая часть остается "Выбрать...". Однако, если я запускаю его в режиме отладки Firebug, "Разрыв на линии", а затем "Продолжить" работает, и видимая часть становится "Городом Б".
Я также попробовал следующие строки:
jQuery('select#Town').attr('value',SelectedTown);
jQuery('select#Town').val(SelectedTown);
jQuery('select#Town').val('4005');
но ни один из них не работает.
Я использую jQuery 1.6.2.
Есть идеи, где я не прав?
4 ответа
Использование setTimeout
функция для приостановки вашего кода примерно на определенную продолжительность и возобновления,
setTimeout(function(){
// Your code here
},3000);
Похоже, это должно работать нормально. Вот пример в jsfiddle, несколько урезанный, который работает: http://jsfiddle.net/neilheinrich/BdqUX/
$("select#Town").val("4005");
Вы уверены, что ваш JS работает на мероприятии, готовом для документов? Не в строке в HTML? Потому что выглядит так, как будто он может просто потерпеть неудачу, потому что (без отладчика) html еще не существует.
Уберите select и добавьте пробел между Town и Option
jQuery('#Town option[value=' + SelectedTown + ']').attr('selected','selected');