Отключенная кнопка отправки остается отключенной, если пользователь прерывает перенаправление на новую страницу

Я хотел бы отключить кнопку отправки после ее нажатия с использованием JavaScript.

myForm.onsubmit = function () {... mySubmitButton.disabled = true;...}

Но когда пользователь перестает открывать новую страницу, пока текущая еще жива, кнопка остается отключенной.

Тот же результат будет, если содержимое с сервера является файлом (в этом случае перенаправление на новую страницу не будет).

Есть ли способ определить, не хочет ли браузер "хотеть" загружать новый URL, и снова включить mySubmitButton?

2 ответа

Я думаю, что вы можете использовать setTimeout для вызова функции, которая снова включает кнопку. Время ожидания должно быть разумным значением, например 5000 (5 с). Я не помню, выполняются ли вызовы setTimeout/Interval после перенаправления страницы, поэтому сначала проверьте его.

Есть несколько способов сделать это, если вам действительно нужно сделать все это на стороне клиента:

  1. Попробуйте снова включить кнопку, если пользователь решит снова отредактировать, например, щелкнув любое поле формы.

  2. Как сказал @Adilson, setTimeout также является хорошим решением, вам не нужно ждать более нескольких секунд, чтобы понять, что что-то пошло не так.

  3. Вы также можете отправить форму с помощью вызова jQuery ajax, который может вернуть команду для повторного включения кнопки, если отправка не удалась.

Я уверен, что есть и другие решения. Я надеюсь, что эти 3 дадут вам идею решить вашу проблему.

Другие вопросы по тегам