Как отправить форму с данными перед выходом из системы?

StackOverflow https://stackoverflow.com/questions/139921

  •  02-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

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

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

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

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

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

Это method атрибут формы, установленный в get или post?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top