Я анализирую ответ JSON через $.ajax()
и строю форму из значений этого объекта. Сценарий, который я написал, длинный, но вот что он делает:
Динамически создаётся:
~ элемент формы,
~ элемент fieldset,
элемент кнопки,
~ 20 или около того текстовых входов и элементов меток
Присоединение входов и меток к набору полей
Добавление кнопки к набору полей
Добавление набора полей к форме
- Добавление формы к элементу в существующем DOM.
Все работает во всех браузерах, кроме одного небольшого фрагмента в IE. Я сузил его до следующего фрагмента кода. (doc
- переменная, содержащая document
)
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Это шаг 3 сверху. Он создает элемент кнопки, добавляет класс, устанавливает для атрибута type
значение submit
, дает ему некоторый текст и затем добавляет его к набору полей. IE не работает с ошибкой «Объект не поддерживает это действие»
Если я закомментирую строку .attr()
следующим образом:
fieldset.append(
$(doc.createElement('button'))
.addClass('ui-button')
//.attr('type', 'submit')
.html('Re-Rate')
.button()
);
Все работает как положено.
Если вам интересно, .button()
метод - это jQuery UI