2012-01-13 3 views
0

Пытается получить значение из выпадающего списка, чтобы запустить console.log ('test') после нахождения значения, но его не работает.Получение значения раскрывающегося списка

 if ($("select[name=type_lvl] option:selected").val() == 'FOREIG') { 
      console.log('test'); 
      $("tr#countries").show(); 
    } 

Когда я проверяю его, это выглядит так.

<option label="Foreign" value="FOREIG">Foreign</option> 

Адрес выпадающего списка.

{html_options name="type_lvl" options=$category} 

Я пробовал как иностранные, так и FOREIG, оба не работают.

EDIT //

Другой question..why это, когда я установил свой код к этому

{html_options name="type_lvl" options=$category selected=""} 

В DOM не выбрать, то, что я выбираю в моем браузере. Он просто остается с исходной опцией, выбранной при предварительной загрузке. Это главная проблема здесь. Мой выбранный параметр в этом теге не переключается, когда я выбираю другую опцию.

Разметка вывода следующая за {html_options} сверху.

<select name="type_lvl"> 
<option label="Select your category" value="" selected="selected">Select your category</option> 
<option label="Exhibition/Workshop/Clinic/Testing" value="EXHIBI">Exhibition/Workshop/Clinic/Testing</option> 
<option label="Invitational Meet" value="INVITA">Invitational Meet</option> 
<option label="Local Meet" value="LOCAL">Local Meet</option> 
<option label="Regional Meet" value="REGION">Regional Meet</option> 
<option label="Sectional" value="SECTION">Sectional</option> 
<option label="State Meet" value="STATE">State Meet</option> 
<option label="Foreign" value="FOREIG">Foreign</option> 
<option label="NC" value="NCATA">NC</option> 
<option label="No Charge" value="COMP">No Charge</option> 
</select> 
+0

Вы можете показать разметку вывода? Кроме того, какую версию jQuery вы используете? – Mathletics

+0

Использование последней версии. Выход выше. – wowzuzz

+0

Удалось выяснить. $ (Select) .val() запутан, потому что он прослушивает начальное значение, а не одно при изменении значения. – wowzuzz

ответ

0

Удалось это выяснить.

Проблема: я думал, что выбранный атрибут = "" в раскрывающемся списке был каждый раз, когда я выбрал параметр. Это неверно. Это только для предварительной загрузки опции .. не выбирая. Поэтому я изменил свой jquery.

$("select[name=type_lvl]").change(function() { 
     if ($(this).val() == 'FOREIG') { 
      console.log('test'); 
      $("tr#countries").show(); 
     } 
    }); 

Теперь это работает. Выбранный вариант атрибута не будет работать, поскольку он предназначен для предустановленных вариантов.

Использование этого кода не будет работать, потому что .val также прослушивает предварительно загруженное значение. Здесь я был в замешательстве. Если это как-то ou

if ($("select[name=type_lvl]").val() == 'FOREIG') { 
     console.log('test'); 
     $("tr#countries").show(); 
} 
1

Попробуйте удалить option:selected со своего селектора. $(select).val() вернет выбранное значение.

+0

if ($ ("select [name = type_lvl]"). Val() == 'FOREIG') { \t \t \t \t console.log ('test'); \t \t \t \t $ ("tr # countries"). Show(); \t \t} Кажется не работает. – wowzuzz

Смежные вопросы