![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| lonelysuch |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 18.1.2007 Репутация: нет Всего: 1 |
При клике на кнопку +, что не раз здесь уже обсуждалось, в форму добавляется новый элемент (точнее их три - два селекта и одно текстовое поле).
все прекрасно добавляется и даже удаляется, но есть один не очень приятный нюанс. в Firefox'е если изменить данные в селектах и текстовом поле и добавить новый блок(2 селекта и тестовое поле), то все предыдущие первые селекты обнуляются =( подскажите куда "копать"? |
||||||
|
|||||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
lonelysuch, заменить ".innerHTML =" на ".innerHTML +="
Это сообщение отредактировал(а) dsCode - 14.3.2008, 14:11 |
|||
|
||||
| lonelysuch |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 18.1.2007 Репутация: нет Всего: 1 |
dsCode, изменил реакция отсутствует.
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
lonelysuch, упс, пардон, не доглядел - у Вас там и так плюсуется, а не затирается. Хм.. Да, действительно сбрасывается значение (даже на элементарном примере - если будет в диве селект с двумя опциями и, если выбрать вторую опцию, а затем приплюсовать к innerHTML'ю любое значение - строку "test", например, значение селекта сбрасывается). Чего не наблюдается при добавлении DOM'ом через appendChild(...). Пока (если горит) можете приапендить DOM'ом (все работает), а так - надо посмотреть, почему изменение innerHTML'я сбрасывает значения инпутов в FF...
|
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
хм.... IE обновляет значения полей после изменения innerHTML, FF - нет :( поэтому - либо обновлять вручную, либо использовать DOM-функции
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
.innerHTML уничтожает и создаёт по новой целое поддерево, естественно все свойства и всё состояние теряется.
Сделай проще:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| dsCode |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 565 Регистрация: 8.9.2007 Где: Saint-Petersburg Репутация: 19 Всего: 26 |
теряются-теряются, только IE после этого их восстанавливает, а FF - нет. Хотя, осуждать FF не стоит, по-моему, innerHTML изначально пошел от IE (и чуть ли не имеет четкой стандартизации в W3C), поэтому IE под него и "подстроилась" действительно, проще =) |
|||
|
||||
| Nigel |
|
|||
|
познаю мир ![]() ![]() Профиль Группа: Участник Сообщений: 515 Регистрация: 20.11.2007 Репутация: нет Всего: 19 |
Насколько помню, свойство innerHTML не входит в спецификацию DOM, и W3C объявил его устаревшим
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |