0

我有一个 ajax 调用,它接收一个邮政编码,在数据库中搜索该邮政编码的城市/县/州选项,然后适当地填充三个选择框。这在 Chrome、Firefox 和 IE9 中运行良好。但在 IE8 中,显示行为异常。选择框的第一批工作没有问题。但是,如果您更改邮政编码,第二个人口将无法正确显示。选择框的 DOM 内容很好,但下拉列表的内容是重新填充之前的内容。但是,如果您选择其中一个选项,则所选值就是所选选项应该是的值。在第二张图片中,“Beverly Hills”应该显示“Washington”,但在选择时,选择框实际上显示“Washington”。您可以使用向上/向下导航选择框,

流程背后的代码基本上是

jQuery('[id$=city]').html("");
jQuery.each(output.city, function(id, city) {
    jQuery("[id$=city]").append(jQuery("<option></option>").val(city).html(city.capitalize()));
});

我已经尝试在 jsFiddle 中重现该问题,但不幸的是我无法做到,而且我无法将您指向发生问题的确切页面,因此我已经包含了正在发生的事情的图片。有任何想法吗?是否有强制刷新或我可以使用的东西?我可以根据需要提供更多信息。

第一步

第二步

4

1 回答 1

0

我最终不得不恢复通过非 jQuery 将选项添加到选择框。无论出于何种原因,这解决了我遇到的问题。

var citySelect = document.getElementById('site.address.city');
jQuery.each(output.city, function(id, city) {
    citySelect.options[citySelect.options.length] = new Option(city.capitalize(), city);
});
于 2012-08-22T21:28:24.767 回答