2009-08-13 3 views
1

У меня есть довольно сложный виджет, который содержит «некую форму ». Он имеет тег формы, но я загружаю много вещей там через Ajax и т. Д. Не могу объяснить это подробно, а код слишком длинный, чтобы вставить .jQuery: проблема с живыми событиями, формой и обратной кнопкой

Теперь, в «живой („Клик“, функции()» Я использую для одного из полей формы, Я пишу пару значений в скрытых полей другого вида. Это работает отлично, как и Я могу видеть их в сгенерированном коде. Но если я покинуть страницу, а затем нажмите кнопку возврата, значения ушли.

Если я пишу некоторые значения в эти поля вне живой мыши функции, хотя они все еще там, когда я покидаю страницу и прихожу назад с помощью кнопки «Назад».

Но мне нужно записать значения в привет dden из функции click (я вставляю значения из полей моей формы в ).

Не знаю, что вызывает это и не удалось найти обходное решение (хотя я и много пробовал).

Любые идеи?

Спасибо!

ответ

0

Обычно то, что происходит в том, что браузер запоминает то, что вы ввели в форму (даже если вы не представить его), так что, когда вы нажмете кнопку назад , он заполняет все видимые поля для вас.

Это похоже на скрытые поля. Однако есть обходной путь.

Каждый раз, когда одно из ваших скрытых полей изменяется, вы можете добавить #part к своему URL-адресу (например, www.mysite.com/users#userId,groupId, ...).

Когда страница загружается снова (например, с помощью кнопки «Назад»), она будет содержать #part. Разберите его как строку, чтобы определить, как заполнять скрытые поля и заполнять их.

Просмотрите плагин истории для jQuery, чтобы узнать, как читать #part.
http://plugins.jquery.com/files/jquery.history.js_0.txt

+0

Эй, ребята, большое спасибо за ответы. Я не рассматривал использование плагина истории, потому что примеры касались только тех исходов, которые вы могли бы иметь на одной странице Ajax. Но я посмотрю на хэш-часть. BTW: Я не думаю, что здесь скрытые поля. Как уже упоминалось, браузер, казалось, помнил значения, когда я писал их в поля из-за функции прямого клика. Но из-за охвата я не могу получить доступ к переменным этой функции извне. – 2009-08-13 20:06:40

0

Используйте CSS, чтобы скрыть ввод вместо типа ввода.

<input type="text" id="foo" name="foo" style="display: none;" /> 

вместо

<input type="hidden" id="foo" name="foo" /> 

Я споткнулся той же проблемой, и это, кажется, чтобы решить ее.

Смежные вопросы