Я столкнулся с ошибкой в IE7 при создании кода, который делает следующее:
Динамически создает форму (поля меняются) в зависимости от значения выбора. Это происходит при срабатывании события изменения.
Одним из созданных элементов является пустой раскрывающийся список или тег выбора. Сначала я создал выбор, создав строку, а затем добавив эту строку в div.
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"></select>";
$table.find(".table-body").append(html);`
Затем я добавляю опции в раскрывающийся список, когда событие изменения запускается в другом раскрывающемся списке. Подумайте каскадный выпадающий список.
$dropdown.append($("<option></option>").attr("value","TEST").text("TESTTEXT");
В IE7, когда я щелкаю раскрывающийся список, ничего не происходит (параметры не отображаются), используя инструмент разработчика IE8, я вижу, что параметры существуют. Кстати: я использую IE7 через IE8, используя инструмент разработчика.
Я нашел решение проблемы, изменив эту строку:
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"></select>";
до
var html = "<select id=\"" + id + "\" class=\"" + this.clazz + "\" name=\"" + this.name + "\"><option></option></select>";
Я не уверен, почему это работает. Кто-нибудь может дать лучшее объяснение, почему эта проблема возникает и почему добавление опции в строку исправило ее? Спасибо.
Кстати: я использую Jquery 1.6