0

我有 2 个下拉列表,用于类别,一个用于子类别。当类别下拉列表更改时,子类别下拉列表将使用 jQuery/ajax 更新以显示新的子类别。它在 Chrome 中运行良好,但 IE 在通过 jQuery 更新后不显示新值。奇怪的是,在选择新选项后,会显示正确的文本,但是当我下拉列表时,它会显示旧文本。

这就是我在类别更改时清空和重新填充子类别下拉列表的方式:

   $('#testselectsubcat').empty().append(new Option("Pick a subcategory", 0));

   $.each(subcategories, function (index, subcat) {
       $('#testselectsubcat').append(new Option(subcat.name, subcat.id));
   });

编辑:忘记这部分,可能很重要。该问题仅发生在页面加载后使用 jQuery 添加的下拉列表中。我使用 .append() 将类别下拉列表添加到页面,使用 .after() 将子类别下拉列表添加到页面。

如何让它在 IE 中工作?

4

2 回答 2

0

好吧,你必须清除子类别下拉,像这样

// C#:
subcategories.Items.Clear();
// and loaded with new data
 ....

// or clear or empty it using jQuery
 $('#subcategories').chilren().remove();
  $('#subcategories').empty();
于 2013-01-18T18:47:26.210 回答
0

Apparently IE doesn't work using the append method with new Option()

You could try to append $('<option/>').text(x).val(y) like:

$('#testselectsubcat').empty().append(
    $('<option/>').val(0).text("Pick a subcategory")
);

$.each(subcategories, function (index, subcat) {
    $('<option/>').val(subcat.id).text(subcat.name).appendTo('#testselectsubcat');
});

or see here for other ways using new Option() to work around IE

于 2013-01-18T19:12:29.263 回答