2008-09-11 130 views
1

幫助!我正在使用JQuery進行AJAX調用,以便根據用戶之前的輸入(從另一個下拉列表中填充服務器端)動態填充下拉列表。除Firefox之外的所有其他瀏覽器(IE6/7,Opera,Safari),我的追加電話實際上將追加我現有選項 - 「選擇一個」下的信息。但是在Firefox中,它會自動選擇給出選擇控件的最後一個項目,而不管我是否將.jpeg指定爲.append或替換(.html())。使用JQuery在Firefox中使用AJAX下拉菜單(HTML選擇)

<select name="Products" id="Products" onchange="getHeadings(this.value);"> 
<option value="">Select Product</option> 
</select>  

function getProducts(Category) 
    { 
     $.ajax({ 
       type: "GET", 
       url: "getInfo.cfm", 
       data: "Action=getProducts&Category=" + Category, 
       success: function(result){ 
       $("#Products").html(result); 
       } 
      }); 
    }; 

有什麼想法?我曾嘗試過也發送另一個空白的第一個選項,然後觸發一個javascript選項來重新選擇第一個索引,但是這會在我的代碼中觸發onChange事件,而對用戶來說卻很煩人。


更新:

這裏是什麼樣的腳本將返回

<option value="3">Option 1</option> 
<option value="4">Option 2</option> 
<option value="6">Option 3</option> 

可選的,如果使用的.html()方法,而不是.append(),我會放一個例子另一個

<option value="">Select a Product</option> 

位於結果的頂部。


@Darryl海恩

這裏是什麼樣的腳本將返回一個例子

<option value="3">Option 1</option> 
<option value="4">Option 2</option> 
<option value="6">Option 3</option> 

可選的,如果使用的.html()方法,而不是.append(),我會把另一個

<option value="">Select a Product</option> 

在結果的頂部。

回答

2

你能改變你的成功功能,將選定的項目重置爲第一個選項嗎?

$("#Products").append(result).selectedIndex = 0; 

或將其設置爲之前的選擇?

var tmpIdx = $("#Products").selectedIndex; 
$("#Products").append(result).selectedIndex = tmpIdx; 

如果onChange事件不應該那麼火,你總是可以設置一個標誌,表明該表單更新,如果它被設置改變事件可以檢查該標誌並退出。

-1

如何最後發送「選擇一個...」選項?

0

我只是做了下面的,它工作得很好:

<select name="Products" id="Products"> 
<option value="">Select Product</option> 
</select> 

<script type="text/javascript"> 
$('#Products').append('<option value="1">test 1</option><option value="3">test 3</option><option value="3">test 3</option>'); 
</script> 

什麼是你的腳本返回?

0
$('#field').find('option:first').attr('selected', 'selected').parent('select'); 

看到這將工作