У меня есть веб-форма, для которой я хочу запретить многократные отправки. В производстве это достигается кнопкой отправки, имеющей атрибут onclick="this.disabled=true"
. Таким образом, если форма отправлена, а затем пользователь возвращается (предположительно, чтобы «отредактировать» данные, что время от времени наши пользователи хотели делать), кнопка отправки остается отключенной.
Это прекрасно работает в Firefox, Safari и Internet Explorer. Однако в Chrome отключение отключается перед отправкой формы, что предотвращает его возникновение. Чтобы обойти это, я изменил действие кнопки onclick
на:
this.disabled=true; $('myform').submit()
Это приводит к отправке формы, но когда я использую кнопку возврата Chrome, чтобы вернуться на страницу формы, кнопка больше не отключается. Значения, которые я ввел в форму перед отправкой, остаются, поэтому я предполагаю, что Chrome должен выборочно перезагружать DOM.
Есть ли способ выполнить то, что я хочу, с помощью Javascript в Chrome? Конечно, есть и другие способы решения этой проблемы, но отключение кнопки имеет очень привлекательную простоту.
Я тестировал в Chrome 12.0.742.100 в Linux и 12.0.742.112 в MacOS X.