Могу ли я предотвратить / избежать предупреждения при перезагрузке формы на моей странице? - PullRequest
4 голосов
/ 21 ноября 2011

У меня есть простая форма на моей странице, как показано на рисунке.

Есть ли способ избежать предупреждения ??.Я нахожу это раздражающим, и в моем случае я не теряю никакой важной информации, если перезагружаю форму.

Are you sure you want to reload the page

<form name="theForm" method="get"> <!-- Changed from "post" to "get" but alert keeps showing -->
Start Point     ( 
<input type="text" name="pt0x" size="4" onkeydown="keyDownPt(event, document.theForm.pt0x.value, 0, 'x')"/>,
<input type="text" name="pt0y" size="4" onkeydown="keyDownPt(event, document.theForm.pt0y.value, 0, 'y')"/> ); </br>
...
</form>

У меня нет кнопки «отправить»потому что я обновляю свое событие onkeydown.Может ли это быть причиной?

Ответы [ 3 ]

2 голосов
/ 21 ноября 2011

Используйте GET как метод в теге формы вместо POST.

Поскольку POST предназначен для «загрузки» данных на сервер, браузер по праву предупредит пользователя о повторном размещении формы, но если вы просто получите данные, браузер предполагает, что это безопасное действие для повторения.

РЕДАКТИРОВАТЬ : Я неправильно прочитал диалог в вопросе. Речь идет не о репостах, а об отбрасывании данных форм ... В любом случае попробуйте использовать GET вместо POST (если вы этого еще не сделали), посмотрите, имеет ли это какой-либо эффект.

EDIT2 : я был бы удивлен, если бы это был какой-либо простой способ отключить его с помощью javascript (хотя, возможно, пользователь мог отключить его в браузере), поскольку это напоминание о том, что вы собираетесь отказаться от данных , Если пользователь хочет перезагрузить страницу, браузер предупреждает, что форма будет удалена, но пользователь может отклонить ее.

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

1 голос
/ 21 ноября 2011

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

РЕДАКТИРОВАТЬ для полноты: не использование тега формы является совершенно допустимым HTML и проверяется как HTML4 строгий, HTML5 и XHTML переходный. Валидатор W3C здесь .

0 голосов
/ 21 ноября 2011

Думаю, я бы попробовал отключить кнопку отправки, так как вы не собираетесь публиковать данные.

Простой (и некрасивый) способ сделать это, добавив ложных возвращаемых государственных деятелей в обработчик onsubmit формы, например:

<form onsubmit="return false;">

Хорошо удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...