У меня есть форма, которую пользователи могут использовать для отправки открытки.
Это пример URL-адреса: http://jimpix.co.uk/ecards/normal-ecard.asp?id=5480
В нижней части формы есть этот HTML (закрывающий кнопки отправки):
<div class="col-lg-6">
<legend>Next bit...</legend>
<button type="button" id="BtnPrev" class="btn btn-info" onclick="return valFormPrev(theForm,'preview');"/>Preview Your Ecard</button>
<button type="button" id="BtnGo" class="btn btn-success" class="preview" onclick="return valFormGo(theForm,'process');"/>Send Now</button>
<p class="top10"><a href="#BtnPrev" onclick="return ResetBtns();">Reset buttons so you can use them again</a></p>
</div>
Поскольку обработка страницы может занять некоторое время, когда пользователи нажимают кнопку, я добавил это в конец JS, используемого для проверки форм (находится по адресу http://jimpix.co.uk/dist/js/ecard.js)
Скажем, пользователь нажимает кнопку «Отправить сейчас», она вызывает функцию «valFormGo».
Это содержит этот код ближе к концу:
document.getElementById("BtnGo").disabled = 'true';
Это отключает кнопку, если пользователь нажимает на нее, поэтому они не могут нажимать ее много раз и отправлять одну и ту же открытку много раз.
Кажется, это работает нормально, но если после отправки электронной открытки они нажимают кнопку «Назад», например. отправить еще раз кому-то другому, кнопка остается неактивной, даже если страница обновляется.
Мне пришлось настроить функцию, позволяющую им снова активировать кнопки через:
function ResetBtns()
{
document.getElementById('BtnPrev').removeAttribute("disabled");
document.getElementById('BtnGo').removeAttribute("disabled");
}
Это работает, но это неуклюже.
Мне просто интересно, знает ли кто-нибудь о более элегантном решении, которому я мог бы следовать, чтобы отключить кнопку при нажатии, или, может быть, кнопка изменила текст, чтобы сказать «обработка ...», когда он ожидает обработки следующей страницы данные.
По сути, я сделал хакерскую работу, и было бы очень признательно, если бы кто-нибудь мог посоветовать возможные альтернативы.
Любые советы будут высоко ценится.
Спасибо
<a>
на страницеprocess.php
, чтобы сбросить страницу, например.<a href="http://jimpix.co.uk/ecards/normal-ecard.asp?id=5480">Create another E-card</a>
- person Adam Azad   schedule 13.02.2014