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');
Другие вопросы по тегам