2010-11-01 34 views
2

這是一個奇怪的問題,它適用於IE,但它不適用於Firefox。在jQuery中選擇一個選項與jQuery在火狐中不起作用

我有一個SELECT控制,當獲得焦點時,調用AJAX呼叫檢索HTMLOPTION s。

onfocus事件處理程序包含此代碼:

var selectedValue = $(":input[name='" + fieldName + "']").val(); 

var dataRetrieved = function(data) 
{ 
    $(":input[name='" + fieldName + "']").html(data); 
    $(":input[name='" + fieldName + "']").val(selectedValue); 
    alert("data: " + data); 
    alert("former value: " + selectedValue); 
}; 

    $.post(url, data, dataRetrieved); 

第一個警報顯示:

data: <option value=""/> 
<option value="1" >a1</option> 
<option value="2" >a2</option> 
<option value="3" >a3</option> 

而第二個:

former value: 3 

所以它應該工作,實際上它在Internet Explorer中(什麼讓我覺得我對HTML做錯了什麼)

任何想法可能是什麼問題?

謝謝。

回答

0

輸入選擇器在它之前不需要冒號。你的選擇應該是這樣的:

$("input[name='" + fieldName + "']") 

$(":input[name='" + fieldName + "']") 

這是我第一次的猜測,爲什麼它可能無法工作。

+0

http://api.jquery.com/input-selector/這就是我在文檔中看到的:P我已經嘗試過了,它仍然是相同的。無論如何,它正在使用IE瀏覽器。 – vtortola 2010-11-01 14:47:14

+0

「:input」實際上選擇了表單中的所有控件(即textareas,選擇,按鈕),而不僅僅是輸入,所以在使用時要小心。什麼具體不工作?另外,ajax調用的代碼是什麼樣的? – ryanulit 2010-11-01 18:28:06

+0

很高興知道:) ajax調用中的代碼始終返回(此時)HTML代碼。基本上,在開始時,服務器僅向SELECT提供一個OPTION(數據庫中選定的一個),但是如果您關注控件,則控件將充滿所有選項。我試圖設置的是存儲當前選定的值,上傳控制選項,然後重新選擇前一個選項,這是什麼在Firefox中不起作用。我意識到的其他事情是,這個問題只發生,如果我讓下拉打開,而它正在獲得新的HTML :( – vtortola 2010-11-02 13:21:44

相關問題