Как отправить форму с данными до выхода из системы? - PullRequest
0 голосов
/ 26 сентября 2008

Я использую функцию document.form.submit () для довольно большой формы ввода (сотни полей, это приложение для инвентаризации). Я звоню после того, как пользователь простаивает определенное время, и я хотел бы сохранить введенные данные. Когда я пытаюсь это сделать, страница перезагружается (действие #), но любой новый текст, введенный в поля, не передается в REQUEST, поэтому я не могу поместить его в БД. Есть ли какая-то фундаментальная причина, почему это происходит, или мой код просто не проигрывается вместе (я использую сеточное представление EXTJS, чтобы показать форму и библиотеку для отслеживания простоя)? Спасибо, Роберт

Ответы [ 4 ]

1 голос
/ 26 сентября 2008

Полагаю, я поставил ответ здесь. То, что я обнаружил, было то, что делает это: setTimeout ('frm.submit ();', 2000); вызвал перезагрузку страницы, но не отправил форму. Когда я сделал это: frm.submit (); Форма была отправлена ​​и данные были переданы. Я не знаю, почему первый способ не сработал, но мне не нужно это знать:)

0 голосов
/ 26 сентября 2008

Метод submit объектов HTMLFormElement должен просто отправить форму, как если бы пользователь нажал кнопку отправки. Таким образом, если для атрибута action формы установлено значение #, может показаться, что страница просто обновляется, поскольку она отправляет данные формы на ту же страницу.

Странно, что он все еще делает это, когда вы устанавливаете атрибут действия на другую страницу.

Для атрибута method формы установлено значение get или post?

0 голосов
/ 26 сентября 2008

Я бы попытался перехватить HTML-запрос на публикацию, чтобы увидеть, включены ли поля ввода. Если они есть, то у вашего сервера есть проблема.

Но, учитывая то, что вы сказали, я думаю, это потому, что ваш браузер обрабатывает JavaScript DOM из-за конфликта. Это может быть в том случае, если вы не указали кнопку «Отправить» в форме, и она работает.

0 голосов
/ 26 сентября 2008

Возможно, сервер аннулирует входные значения. Скажите, если ваша страница на сервере выглядит так:

<form action="/page.cgi">
  ...
  <input name="Fieldx" value=""/>
</form>

Я думаю, это уничтожит поле. Или это действие сервера может устанавливать его косвенно. В JSF что-то вроде этого.

<input name="Fieldx" value="#{bean.nullProperty}"/>

Что у вас на сервере и какой у вас браузер?

...