2011-04-29 152 views
1

我一直在審查很多關於此的網頁,似乎無法弄清楚爲什麼這不起作用。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,我嘗試使用文本(),但似乎無法抓住任何東西。有人能告訴我這裏究竟發生了什麼嗎?現在我一直在絞盡腦汁談論這件事。

+1

爲什麼在語句中引用'id':'$ sel ='';'?順便提一下,jQuery在客戶端工作,所以它是我們需要查看的呈現的(x)html,以便正確地提供幫助。 – 2011-04-29 16:54:03

回答

3

select元素中的id字段不應包含引號。這不是有效的標記,所以jQuery沒有找到它的id。

+0

這樣做!非常感謝您結束我的酷刑! – ackerchez 2011-04-29 16:54:57