• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Залипание кнопки на Javascript.

  • Автор темы Автор темы Gamlet
  • Дата начала Дата начала
G

Gamlet

У меня на сайте есть самопальная форма обратной связи. Мой хостер очень нервно относится к спаму (более 5 писем за минуту, могут стать причиной бана). Форма выглядит так:
Код:
<form name="form1" target="_parent" method="POST" action="chat_sumb.php" enctype="utf-8">
<textarea name="text" style="position:absolute;width:200px;height:125px;left:30px;top:100px;z-index:1"></textarea>
<input name="formbutton1" type="submit" value="Отправить" style="position:absolute;left:66px;top:232px;z-index:2">
<input name="id" value="1" type="text" style="position:absolute;width:0px;left:0px;top:173px;z-index:3">
</form>

По идеи, после нажатия на кнопку должен быть совершен переход на chat_sumb.php.
Из за медленного перехода, кнопку можно нажать несколько раз. Как сделать "Залипание" кнопки после первого нажатия? :(
 
Код:
<input name="formbutton1" type="submit" value="Отправить" style="position:absolute;left:66px;top:232px;z-index:2" onclick="this.disabled=true;">
Так сойдет?
 
Спасибо. Но пример твой не очень рабочий.
У тебя он дисайблится, но не отправляет. Я так сделал:
Код:
<form name="form1" target="_parent" method="POST" onSubmit="formbutton1.disabled=true;" action="chat_sumb.php" enctype="utf-8">
<textarea name="text" style="position:absolute;width:200px;height:125px;left:30px;top:100px;z-index:1"></textarea>
<input name="formbutton1" type="submit" value="Отправить" style="position:absolute;left:66px;top:232px;z-index:2">
<input name="id" value="1" type="text" style="position:absolute;width:0px;left:0px;top:173px;z-index:3">
</form>
Вот так все работает.
 
Но пример твой не очень рабочий.
Так я его и не проверял, как идею "залипания" тут написал :)
А сейчас глянул, ну да не все браузеры адекватно его понимают, но если подшаманить то поймут все. Ваш "плох" тем, что выделить в функцию тоже не получится ... без бубнов. :(
 
Ну я в джава скрипте вообще ноль. Смарганил рабочее. Если есть лучшее, а в этом я уверен, подскажи. Буду очень благодарен.
 
Gamlet Да нет, тут нормально. Я просто имел ввиду что если все что под onSubmit тупо выделить в отдельную функцию, типа так:
Код:
<script>
funcrion _submit()
{
formbutton1.disabled=true;
}
</script>
с целью введения доп. логики или еще чего, то уже не прокатит, т.к. formbutton1 это непойми что.
И придеться делать типа так: var formbutton1 = document.getElementById('formbutton1');, и далее по тексту.
Поэтому и плох в "" написал и про бубны.
 
Ну всегда можно передать this в вызов функции
 
Vovochka
this не идет. У меня при этом вся форма пряталась, а кнопка пряталась и из под тишка при каждом нажатии отправляла.
 
Vovochka
this не идет. У меня при этом вся форма пряталась, а кнопка пряталась и из под тишка при каждом нажатии отправляла.
Правильно. Надо знать к чему идет это this.
Если вы событие формы обрабатываете, то this - объект этой формы.
Если событие кнопки, то this - эта кнопка.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab