簡體   English   中英

在IE8中選擇下拉排序順序

[英]Select drop down sort order in IE8

我在Web表單上有一個select下拉列表,該下拉列表是根據在此表單上輸入字段之前選擇的選項填充的。

該表單使用AJAX / JSON從服務器獲取選項列表,它將用於填充選擇內容。

我的Javascript代碼中存在一個循環,該循環遍歷JSON響應對象以便填充選擇。

響應對象將具有鍵/值對(兩個字符串值)形式的數據,如下所示:

“”-請選擇,45-光學,52-牙科,67-外科手術,83-整骨術等。

填充我正在使用的選擇的代碼是:

$.each(response, function(key,value) {
    $("#benefitField4").append("<option value="+key+">"+value+"</option>");
}

...其中'benefitField4'是表單上選擇的ID。

我需要按鍵順序顯示select的結果,因此對於“請選擇”,鍵值為“”,我希望這將是第一個。

現在,在所有瀏覽器中,結果選擇將以正確的順序顯示下拉列表,其中“請選擇”是第一個選項。

但是,在IE8中,“請選擇”在列表中排在第三位,“光學”排在第一位。

我嘗試使用以下代碼對選擇進行排序:

var selectList = $('#benefitField4 option');
selectList.sort(function(a,b){
a = a.value;
b = b.value;
return a-b;
});
$('#benefitField4').empty()
$('#benefitField4').eq(0).html(selectList);

但這導致選擇中的最后一項(在本例中為Osteopath)顯示為選擇中的初始值,“請選擇”為最后一項。 同樣,僅在IE8中。

因為我需要在所有瀏覽器中都可以使用它,所以我對IE8為何采用這種方式有點困惑。

有人可以幫忙嗎?

我發現這迫使IE8選擇“請選擇”作為默認選擇選項:

$('#benefitField4 option[value="0"]').attr("selected",true);

由於某種原因,它忽略了“ eq(0)”。 奇怪。

一切都很好。 感謝那些發表評論的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM