![](/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.