Я искал несколько десятков подобных вопросов здесь и пытался реализовать предлагаемые решения, но ничего не работает.Кнопка сброса формы форматирования при использовании кнопки «Назад» браузера
У меня есть форма на странице, и я исправил проблему нетерпеливых людей, которые нажимают кнопку «отправить» несколько раз, добавляя событие onclick, которое вызывает javascript, который изменяет текст (значение) кнопки отправки «пожалуйста» wait "и добавляет класс стиля, поэтому я могу изменить кнопку от зеленого до красного. Это событие onclick запускается непосредственно перед скриптом, который фактически отправляет данные формы. Прекрасно работает.
Однако после подачи формы справедливое количество посетителей сайта использует кнопку «Назад» браузера, чтобы вернуться на страницу, изменить несколько ответов на форму и повторно отправить ее - это нормально (это для цитаты, и они могут выберите несколько разных вариантов, чтобы получить другую цитату).
Так что я действительно не хочу сбросить форму (хотя это было бы приемлемым решением, даже если это не идеально, так как тогда им нужно было начинать заполнять форму), я просто хочу сбросить кнопка ... потому что теперь моя проблема в том, что когда они вернутся, кнопка STILL красная и все еще говорит «Пожалуйста, подождите».
В идеале я просто хочу вернуть кнопку в исходное состояние. Я попробовал много разных методов (здесь и на других форумах), чтобы принудительно обновить страницу, принудительно сбросить форму и просто изменить исходное значение обратно на оригинал - ничего не работает, потому что проблема связана с использованием кнопки «Назад» в браузере заключается в том, что браузер просто загружает кешированную версию предыдущей страницы - ничего действительно не срабатывает, и страница на самом деле не перезагружается (поэтому окна onload/body onload не работают).
Мой вопрос заключается в следующем: существует ли какой-либо способ заставить браузер делать ЧТО-ТО, когда вы используете кнопку «Назад», с которой я могу работать, чтобы сбросить кнопку или не удалось сбросить форму? Некоторое решение, совместимое с кросс-браузером?
UPDATE: В ответ на запрос @ jammykam, чтобы увидеть код, вот как я сейчас меняю кнопку (обратите внимание, что я на самом деле не делаю его отключенным/не кликабельным, меняю только текст и цвет, чтобы указать, что посетители не должны нажимать на него - отключение кнопки не позволяет исправить ошибки и повторно нажать кнопку submit)
В моем файле functions.php У меня есть фрагмент, чтобы добавить событие onclick в форму (Я использование тяжести формы и получил от этого их форума):
add_filter("gform_submit_button", "add_change_button_text", 10, 2);
function add_change_button_text($button, $form) {
$dom = new DOMDocument();
$dom->loadHTML($button);
$input = $dom->getElementsByTagName('input')->item(0);
if ($input->hasAttribute('onclick')) {
$input->setAttribute("onclick","changebtn();".$input->getAttribute("onclick"));
} else {
$input->setAttribute("onclick","changebtn();");
}
return $dom->saveHtml();
}
ТОГДА в моем файле header.php у меня есть этот код, с hanges текст кнопки и добавляет класс, так что я могу изменить цвет кнопки:
function changebtn() {
var button = $("input[type='submit']");
if (button.val() == "Free Quote") {
button.val("Please Wait");
button.addClass("plswait');
} else {
button.val("Free Quote");
}
}
SO, как я уже говорил, это прекрасно работает и изменяет кнопку, и предотвратило несколько кликов, которые мы ранее получали ... ..Я просто не смогли изменить его, когда кто-то использует кнопку «Назад».
Не можете добавить событие OnLoad, который установит его так, как вы этого хотите? Поэтому каждый раз, когда страница загружается, она становится зеленой и подает. – WreithKassan
Опубликовать код о том, как вы можете нажать кнопку отправки – jammykam
Не можете ли вы включить или отключить кнопку? В любом случае форма может быть отправлена с ключом ввода в большинстве браузеров. – RobG