我有两个下拉列表,一个是类别,一个是子类别。当类别下拉列表发生更改时,子类别下拉列表将使用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中工作?
发布于 2013-01-19 02:47:26
您必须清除子类别下拉列表,如下所示
// C#:
subcategories.Items.Clear();
// and loaded with new data
....
// or clear or empty it using jQuery
$('#subcategories').chilren().remove();
$('#subcategories').empty();发布于 2013-01-19 03:12:29
显然是IE doesn't work using the append method with new Option()
您可以尝试添加$('<option/>').text(x).val(y),如下所示:
$('#testselectsubcat').empty().append(
$('<option/>').val(0).text("Pick a subcategory")
);
$.each(subcategories, function (index, subcat) {
$('<option/>').val(subcat.id).text(subcat.name).appendTo('#testselectsubcat');
});对于使用new Option()解决IE问题的其他方法,请使用see here
https://stackoverflow.com/questions/14405480
复制相似问题