![](/img/trans.png)
[英]Link in drop down select not working IE8/9 to open drop down select link, alert works
[英]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.