我已经查看了很多关于此的页面,但似乎无法弄清楚为什么这不起作用。
在 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 检查了页面上存在的元素。我尝试过仅使用下拉列表的 ID 和 val(),我尝试过使用 text() 但似乎无法抓取任何内容。有人可以告诉我这里到底发生了什么事吗?我已经为此绞尽脑汁有一段时间了。
最佳答案
select 元素中的 id
字段不应包含引号。它不是有效的标记,因此 jQuery 无法使用该 id 找到它。
关于php - JQuery 获取动态创建的选择值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5834924/