Как сделать кнопку не активной после первого нажатия
Обычно такое поведение кнопки нужно для того, чтобы форму не отправляли повторно несколько раз.
Чтобы сделать кнопку на HTML форме не активной (disable) , нужно добавить к кнопке небольшой обработчик события onclick:
<input type="submit" name="send_form" value="Отправить"
onclick="this.form.submit(); this.disabled=true;" />
Именно этот код onclick="this.form.submit(); this.disabled=true;" отвечает за то, что после нажатия кнопка сразу становится не активна и затем отправляется форма.
Но есть подводные камни, которые могут сделать этот код не работающим, а именно:
как только элемент формы имеет атрибут disabled, он не отправляется вместе со всей формой на обработку. Что это значит? Поясняем:
Если до этого на стороне php вы обрабатывали форму при нажатии на кнопку:
if(isset($_POST['send_form'])) ... //обработка формы
то вся обработка не будет запущена так как send_form из-за выключенного состояния не будет отправлен (хотя все остальные поля формы - будут).
Самое простое решение в данном случае - ввести hidden поле:
<input type="hidden" name="send_form_indicator" value="1" />
и проверять отправку формы по нему:
if(isset($_POST['send_form_indicator'])) ... //обработка формы
Комментарии