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

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Gamlet, 24 июн 2008.

  1. Gamlet

    Gamlet Well-Known Member

    Регистрация:
    8 янв 2007
    Сообщения:
    609
    Симпатии:
    0
    У меня на сайте есть самопальная форма обратной связи. Мой хостер очень нервно относится к спаму (более 5 писем за минуту, могут стать причиной бана). Форма выглядит так:
    Код (Text):
    <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.
    Из за медленного перехода, кнопку можно нажать несколько раз. Как сделать "Залипание" кнопки после первого нажатия? :(
     
  2. etc

    etc Гость

    Код (Text):
    <input name="formbutton1" type="submit" value="Отправить" style="position:absolute;left:66px;top:232px;z-index:2" onclick="this.disabled=true;">
    Так сойдет?
     
  3. Gamlet

    Gamlet Well-Known Member

    Регистрация:
    8 янв 2007
    Сообщения:
    609
    Симпатии:
    0
    Спасибо. Но пример твой не очень рабочий.
    У тебя он дисайблится, но не отправляет. Я так сделал:
    Код (Text):
    <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>
    Вот так все работает.
     
  4. etc

    etc Гость

    Так я его и не проверял, как идею "залипания" тут написал :)
    А сейчас глянул, ну да не все браузеры адекватно его понимают, но если подшаманить то поймут все. Ваш "плох" тем, что выделить в функцию тоже не получится ... без бубнов. :(
     
  5. Gamlet

    Gamlet Well-Known Member

    Регистрация:
    8 янв 2007
    Сообщения:
    609
    Симпатии:
    0
    Ну я в джава скрипте вообще ноль. Смарганил рабочее. Если есть лучшее, а в этом я уверен, подскажи. Буду очень благодарен.
     
  6. etc

    etc Гость

    Gamlet Да нет, тут нормально. Я просто имел ввиду что если все что под onSubmit тупо выделить в отдельную функцию, типа так:
    Код (Text):
    <script>
    funcrion _submit()
    {
    formbutton1.disabled=true;
    }
    </script>
    с целью введения доп. логики или еще чего, то уже не прокатит, т.к. formbutton1 это непойми что.
    И придеться делать типа так: var formbutton1 = document.getElementById('formbutton1');, и далее по тексту.
    Поэтому и плох в "" написал и про бубны.
     
  7. Vovochka

    Vovochka Гость

    Ну всегда можно передать this в вызов функции
     
  8. Gamlet

    Gamlet Well-Known Member

    Регистрация:
    8 янв 2007
    Сообщения:
    609
    Симпатии:
    0
    Vovochka
    this не идет. У меня при этом вся форма пряталась, а кнопка пряталась и из под тишка при каждом нажатии отправляла.
     
  9. Vovochka

    Vovochka Гость

    Правильно. Надо знать к чему идет это this.
    Если вы событие формы обрабатываете, то this - объект этой формы.
    Если событие кнопки, то this - эта кнопка.
     
Загрузка...

Поделиться этой страницей