2015-12-02 2 views
3

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

Таким образом, могу ли я доверять, что мой запрос на почту всегда доходит до сервера и обратно пользователю?

+0

Удалите ответ от сервера, если вы получите успех, тогда только заблокируйте отправку, если вы хотите заблокировать. – SHAZ

+1

onSubmit событие формы disable кнопку отправки, если вы перенаправляетесь на другую страницу – WisdmLabs

ответ

1

Это нормально кнопки на Submit, чтобы отключить ... но, пожалуйста, убедитесь, что вы выполняете ВВЕСТИ сценарий после того, как вы отключили его ...

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

Чтобы столкнуться нет/плохой связи, вы можете установить JavaScript таймер, который будет возвращать кнопку отправки в нормальное состояние через некоторое время, так что пользователь может нажать снова

+0

Мои мысли были в этих строках, а также с тайм-аутом, который снова включает кнопку, но действительно ли это необходимо, может ли такой сценарий произойти? И есть ли способ, чтобы я мог воссоздать этот сценарий в своем браузере? (с сетевым дросселированием или аналогичным) –

+0

это случается ... и в этом случае браузер выдает ошибку ... что нормально для большинства случаев. вам это действительно нужно или нет, зависит от требований ... Если вы действительно заботитесь о Data Integrity, вы можете выполнить сценарий «проверить подключение», чтобы убедиться, что соединение в порядке, а затем отправить форму ... – JavaMachine

2

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

Я думаю, вы используете javascript для вызова сервера, если да, тогда это очень легко пройти обратный вызов и прослушивание ответа

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