JQuery获得动态创建的选择值

时间:2011-04-29 16:51:07

标签: 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);

出于某种原因,每当我尝试获取值时,我都会收到“未定义”的警报而不是下拉列表的值。我确信这是设置的,因为我已经查看了页面的来源,并且我已经使用Firebug检查了页面上是否存在元素。我试过只使用下拉列表和val()的ID,我尝试使用text()但似乎无法抓取任何东西。有人可以告诉我这里到底发生了什么吗?我已经绞尽脑汁待了一会儿。

1 个答案:

答案 0 :(得分:3)

select元素中的id字段不应该有引号。它不是有效的标记,因此jQuery没有找到该ID。