我一直在审查很多关于此的网页,似乎无法弄清楚为什么这不起作用。
在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()但似乎无法抓取任何东西。有人可以告诉我这里到底发生了什么吗?我已经绞尽脑汁待了一会儿。
答案 0 :(得分:3)
select元素中的id
字段不应该有引号。它不是有效的标记,因此jQuery没有找到该ID。