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

Gamlet

Well-known member
08.01.2007
525
0
#1
У меня на сайте есть самопальная форма обратной связи. Мой хостер очень нервно относится к спаму (более 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.
Из за медленного перехода, кнопку можно нажать несколько раз. Как сделать "Залипание" кнопки после первого нажатия? :(
 
E
#2
Код:
<input name="formbutton1" type="submit" value="Отправить" style="position:absolute;left:66px;top:232px;z-index:2" onclick="this.disabled=true;">
Так сойдет?
 

Gamlet

Well-known member
08.01.2007
525
0
#3
Спасибо. Но пример твой не очень рабочий.
У тебя он дисайблится, но не отправляет. Я так сделал:
Код:
<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>
Вот так все работает.
 
E
#4
Но пример твой не очень рабочий.
Так я его и не проверял, как идею "залипания" тут написал :)
А сейчас глянул, ну да не все браузеры адекватно его понимают, но если подшаманить то поймут все. Ваш "плох" тем, что выделить в функцию тоже не получится ... без бубнов. :(
 

Gamlet

Well-known member
08.01.2007
525
0
#5
Ну я в джава скрипте вообще ноль. Смарганил рабочее. Если есть лучшее, а в этом я уверен, подскажи. Буду очень благодарен.
 
E
#6
Gamlet Да нет, тут нормально. Я просто имел ввиду что если все что под onSubmit тупо выделить в отдельную функцию, типа так:
Код:
<script>
funcrion _submit()
{
formbutton1.disabled=true;
}
</script>
с целью введения доп. логики или еще чего, то уже не прокатит, т.к. formbutton1 это непойми что.
И придеться делать типа так: var formbutton1 = document.getElementById('formbutton1');, и далее по тексту.
Поэтому и плох в "" написал и про бубны.
 
V

Vovochka

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

Gamlet

Well-known member
08.01.2007
525
0
#8
Vovochka
this не идет. У меня при этом вся форма пряталась, а кнопка пряталась и из под тишка при каждом нажатии отправляла.
 
V

Vovochka

#9
Vovochka
this не идет. У меня при этом вся форма пряталась, а кнопка пряталась и из под тишка при каждом нажатии отправляла.
Правильно. Надо знать к чему идет это this.
Если вы событие формы обрабатываете, то this - объект этой формы.
Если событие кнопки, то this - эта кнопка.