Я пытаюсь лениво загрузить параметры в выборку с помощью jquery. Этот код работает во всех браузерах, которые я тестировал, кроме IE9. (IE7, IE8, FF, Chrome все работают)
function LazyLoadOptionsIntoSelect($select, options) {
//get current option
var selectedOptionVal = $select.val();
var selectedOptionDisplay = $select.find("option:selected").text();
//repopulate options
if (selectedOptionDisplay === "--Select a File--"
|| selectedOptionDisplay === "----------") {
$select.html("");
$("<option>").val("").text("--Select a File--")
.appendTo($select);
}
else {
$select.html($("option:selected", $select));
$("<option>").val("").text("----------")
.appendTo($select);
}
$.each(options, function () {
var item = this;
$("<option>").attr("name", function () { return item.display; })
.val(item.value)
.text(item.display)
.appendTo($select);
});
//select previous val
$select.val(selectedOptionVal);
}
$(document).on("focus", ".html-select", function () {
LazyLoadOptionsIntoSelect($(this), HtmlOptions);
});
$(document).on("focus", ".txt-select", function () {
LazyLoadOptionsIntoSelect($(this), TxtOptions);
});
$(document).on("focus", ".xml-select", function () {
LazyLoadOptionsIntoSelect($(this), XmlOptions);
});
Я пытался решить эту проблему часами, но ничего не получается .. есть какие-то решения или мне нужно написать другой способ загрузки параметров в IE9?
options - это массив объектов, содержащих значение и отображение.
Это работает в более простых случаях использования, но, по-видимому, это слишком много для Microsoft. <_ <</p>