Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.06.2010, 12:49
Новичок на форуме
Отправить личное сообщение для Atoll Посмотреть профиль Найти все сообщения от Atoll
 
Регистрация: 22.06.2010
Сообщений: 4

Баг Firefox: по F5 перескакивает radio при динамическом добавлении в DOM input
По готовности документа вставляю до группы radio любой input. Изначально все проходит нормально. Но при обновлении страницы (по F5) под Firefox radio начинают сами собой перескакивать на одну позицию с каждым обновлением. Соответственно, нужно, чтобы не перескакивали.

вот скрипт (с использованием jquery):
$(document).ready(function(){
    $('<input type="text" value="а вот и я" />').insertBefore($('#r1'));
});

вот HTML
<input type="radio" name="ttt" id="r1" checked="checked"/>первый
<br />
<input type="radio" name="ttt" id="r2" />второй
<br />
<input type="radio" name="ttt" id="r3" />третий
Ответить с цитированием
  #2 (permalink)  
Старый 22.06.2010, 13:32
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Хм-м… Боюсь, тут мало что можно поделать.

А нельзя его вообще не вставлять динамически? Ну, скажем, менять css display.
Ответить с цитированием
  #3 (permalink)  
Старый 22.06.2010, 14:12
Новичок на форуме
Отправить личное сообщение для Atoll Посмотреть профиль Найти все сообщения от Atoll
 
Регистрация: 22.06.2010
Сообщений: 4

Сообщение от subzey Посмотреть сообщение
А нельзя его вообще не вставлять динамически? Ну, скажем, менять css display.
Вставлять, к сожалению, нужно, так как их изначально на странице нет и быть не должно. Задумка скрипта в подмене одних контролов другими без внесения изменений в исходники страниц. Вот обнаружилась такая неприятная особенность.
Ответить с цитированием
  #4 (permalink)  
Старый 22.06.2010, 16:51
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Ну, попробуйте этот код по событию ready запускать не сразу, а с использованием setTimeout.
Ответить с цитированием
  #5 (permalink)  
Старый 22.06.2010, 18:09
Новичок на форуме
Отправить личное сообщение для Atoll Посмотреть профиль Найти все сообщения от Atoll
 
Регистрация: 22.06.2010
Сообщений: 4

Фишка в том, что Firefox проставляет новые (неверные) значения еще до ready. В первый раз все значения уже проставлены, а потом только добавляется input. Потом, еще до обновления FF запоминает, кому надо будет проставить checked (тут её сбивает добавленный input). И при загрузке FF выставляет значение уже не тому, кому нужно было, а потом уже снова появляется злосчастный input.
P.S. checkbox-ы тоже плавают.
Ответить с цитированием
  #6 (permalink)  
Старый 22.06.2010, 18:20
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Да в Firefox запоминалка форм разработчику немало проблем доставляет. Она кстати еще disabled запоминает непонятно зачем.
Ответить с цитированием
  #7 (permalink)  
Старый 22.06.2010, 18:25
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Не надо просто рассчитывать на умолчательные значения, всегда брать значения из формы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск