Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Изменение значения html-элемента hidden 
:(
    Опции темы
Avtor
Дата 27.11.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 21.7.2006

Репутация: нет
Всего: нет



Для наглядности привожу простенький код:
Код

<HTML>
  <HEAD>
    <META http-equiv=content-type content=text/html;charset=windows-1251>
<script language="javascript">
function myFunc() {
  alert(document.getElementById("hidden_id1").value);
}
</script>    
  </HEAD>
  <BODY onload="myFunc()">
    <form method="post">
      <table align="center" border="1">
        <tr>
          <td>
            <INPUT type="button" value="+" id="button_id1" onclick="document.getElementById('hidden_id1').value = '5';" />
            <INPUT type="hidden" name="sel1" id="hidden_id1" value="1" />          
          </td>
        </tr>
      </table>
    </form>
  </BODY>
</HTML>

Так вот при первой загрузке сообщение выдаст "1". Если нажать кнопку, а затем сколько угодно раз обновлять, то сообщение каждый раз будет выдавать "5". Правда это происходит только в FF и IE, в Oper'е же все нормально работает - после каждой перезагрузки выдает "1". Объясните такой абсурд с FF и IE пожалуйста.

Это сообщение отредактировал(а) Avtor - 28.11.2007, 22:31
PM MAIL   Вверх
solenko
Дата 27.11.2007, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: 9
Всего: 67



Не знаю как IE, но FF точно после перезагрузки восстанавливает значения формы, которые до этого ввел пользователь


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
Avtor
Дата 27.11.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 21.7.2006

Репутация: нет
Всего: нет



Я тоже так думал пока, код не проверил.
PM MAIL   Вверх
Mymik
Дата 27.11.2007, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1474
Регистрация: 12.5.2006
Где: Lamer-центер

Репутация: 11
Всего: 78



Avtor, на самом деле все гораздо проще. Ошибка происходит из-за того что ты нажимаешь Ctrl+R или F5(если просто нажать еще раз на ссылку, как бы открыть окно по новой, не обновить, то все будет нормально). Даже не знаю как объяснить это. Но вобщем-то все данные что ты изменил сохраняются свой статус.
Потому надо либо в onload обнулять значения либо... либо не знаю даже... Не нажимать Ctrl+R или F5.


--------------------
ICQ ::            857-857
E-mail ::         mymik[at]inbox[dot]ru 
HomaPage ::  http://localhost/

:to_become_senile  :this
PM MAIL WWW ICQ   Вверх
Avtor
Дата 27.11.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 21.7.2006

Репутация: нет
Всего: нет



Согласен абсолютно со всем и происходит это по той причине, что "5" подставляется сразу в код (выяснено в DOM инспекторе), который обновляй не обновляй - "5" в нем прописана уже жестко. Однако относится это судя по всему только к типу hidden (если поставить другой тип, например, button, то все функционирует так, как и должно).

Это сообщение отредактировал(а) Avtor - 27.11.2007, 22:04
PM MAIL   Вверх
ksnk
Дата 28.11.2007, 01:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(Avtor @  27.11.2007,  19:38 Найти цитируемый пост)
Объясните такой абсурд с FF и IE пожалуйста
 Абсурд, которому следует не только IE, но и FF - это гарантированная фича, а совсем не абсурд smile
Называется оно - autocomplete. Соответственно, если написать
Код

<INPUT type="hidden" autocomplete="off" name="sel1" id="hidden_id1" value="1" />
, то единичка будет на своем месте как пришитая...



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Avtor
Дата 28.11.2007, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 21.7.2006

Репутация: нет
Всего: нет



Если код немного переделать так:
Код

<HTML>
  <HEAD>
    <META http-equiv=content-type content=text/html;charset=windows-1251>
<script language="javascript">
function myFunc() {
  alert(document.getElementById("hidden_id1").value);
}
</script>    
  </HEAD>
  <BODY onload="myFunc()">
    <form method="post">
      <table align="center" border="1">
        <tr>
          <td>
            <INPUT type="button" value="+" id="button_id1" onclick="document.getElementById('hidden_id1').defaultValue = '5';" />
            <INPUT type="hidden" name="sel1" id="hidden_id1" value="1" />          
          </td>
        </tr>
      </table>
    </form>
  </BODY>
</HTML>

То он будет работать уже и в FF, но только не в IE. Кстати фишка с autocomplete="off" дает такой же результат: в IE не работает, т. е. при обновлении все так же выдает "5".

Это сообщение отредактировал(а) Avtor - 28.11.2007, 22:31
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0829 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.