jQuery получает динамически созданное значение выбора

#php #jquery

#php #jquery

Вопрос:

Я просматривал много страниц об этом и, похоже, не могу понять, почему это не работает.

На HTML-странице я использую PHP для динамического создания выпадающего списка на странице, подобного этому:

 $sel = '<select "id"="userPhones">';

foreach ($user_phones as $single_phone) 
{
$phoneId = $single_phone['id'];
$phoneNum = $single_phone['phone_num'];
if($single_phone['isdefault']=='1')
{
    $sel.="<option id=".$phoneId." selected='selected'>".$phoneNum."</option>";
}
else
{
    $sel.="<option id=".$phoneId.">".$phoneNum."</option>";
}
}
$sel .='</select>';
echo $sel;
  

Я вижу, что выпадающий список отображается на странице без проблем, и все выглядит так, как будто это работает. Но позже я попытаюсь использовать jQuery, чтобы получить значение из выпадающего списка, чтобы воздействовать на него, делая это:

 phone_num = $('#userPhones :selected').val();
alert(phone_num);
  

По какой-то причине всякий раз, когда я пытаюсь получить значение, я получаю предупреждение «undefined», а не значение выпадающего списка. Я уверен, что это задается, потому что я посмотрел на исходный код страницы и я проверил с помощью Firebug, что элементы существуют на странице. Я пробовал просто использовать идентификатор выпадающего списка и val (), я пробовал использовать text (), но, похоже, ничего не получается захватить. Может кто-нибудь, пожалуйста, сказать мне, что, черт возьми, здесь происходит? Я уже некоторое время ломаю голову над этим.

Комментарии:

1. Почему вы цитируете ‘id’ в инструкции: $sel = '<select "id"="userPhones">'; ? Кстати, jQuery работает на стороне клиента, поэтому нам нужно просмотреть отрисованный (x) html, чтобы правильно помочь.

Ответ №1:

id Поле в элементе select не должно заключаться в кавычки. Это недопустимая разметка, и поэтому jQuery не находит ее с этим идентификатором.

Комментарии:

1. Это сделало это!! Большое спасибо, что положили конец моим пыткам!