[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нажатие на button
Xander
Доброго времени суток! у меня есть кнопка

<button type="submit" class="button">добавить</button>


и можно ли сделать каким то образом что когда человек открывает страницу с этой кнопкой то он мог нажать бы на нее один раз всего? или допустим она блокировалась после первого нажатия и было написано "добавлено"



Спустя 13 минут, 2 секунды (21.05.2012 - 10:00) redreem написал(а):
<button type="submit" onclick="if (typeof bPressed !== undefined) return false; else bPressed = true;" class="button">добавить</button>

Спустя 5 минут, 44 секунды (21.05.2012 - 10:06) Xander написал(а):
хм сделал как вы написали ,но от чего то при нажатии этой кнопки действия не происходит добавления) я так предполагаю что она вообще не нажимается!

Спустя 37 минут, 7 секунд (21.05.2012 - 10:43) redreem написал(а):
так попробуй:

<button type="submit" onclick="if (typeof bPressed !== undefined) return false; else bPressed = true; return true;" class="button">добавить</button>

Спустя 2 минуты, 39 секунд (21.05.2012 - 10:46) Xander написал(а):
опять же без результатно! он у меня передает данные method="post" ! а так блин не передает(

Спустя 4 минуты, 11 секунд (21.05.2012 - 10:50) rooor написал(а):
Как вариант - при нажатии на кнопку записывать что-то в сессию, а потом проверять
<?php
If(isset($_POST['click']))
$_SESSION['click'] = 1;
?>
<button type="submit" class="button" <?php echo (!empty($_SESSION['click'])) ? "disabled" : null; ?>>добавить</button>

не проверял, не знаю будет работать или нет

Спустя 6 минут, 28 секунд (21.05.2012 - 10:56) redreem написал(а):
вот, проверил, работает:

<button type="submit" onclick="if (typeof bPressed != 'undefined') return false; else {bPressed = true;return true;}" class="button">добавить</button>

Спустя 2 минуты, 57 секунд (21.05.2012 - 10:59) Xander написал(а):
Цитата (redreem @ 21.05.2012 - 07:56)
вот, проверил, работает:

<button type="submit" onclick="if (typeof bPressed != 'undefined') return false; else {bPressed = true;return true;}" class="button">добавить</button>

дав от этот вариант работает! благодарствую!

Спустя 2 дня, 42 минуты, 59 секунд (23.05.2012 - 11:42) Xander написал(а):
Доброго времени суток! столкнулся с другой проблемой когда две кнопки на одной странице то вторая тоже блокируется(( каким образом это можно поправить?

Спустя 1 час, 34 минуты, 37 секунд (23.05.2012 - 13:17) killer8080 написал(а):
<button type="submit" class="button" onclick="this.disabled = true">добавить</button>

Спустя 6 минут, 45 секунд (23.05.2012 - 13:24) Xander написал(а):
воо блиннн! все гениальное простоо! спасибо!

Спустя 9 дней, 27 минут, 38 секунд (2.06.2012 - 13:51) Xander написал(а):
и тем не менее выявилась еще одна проблема !


<button type="submit" class="button" onclick="this.disabled = true">добавить</button>


эта конструкция от чего то отказывается работать в гугл хроме( как можно исправить?

Спустя 1 час, 43 минуты, 33 секунды (2.06.2012 - 15:35) Michael написал(а):
Цитата (Xander @ 2.06.2012 - 12:51)

<button type="submit" class="button" onclick="this.disabled = true">добавить</button>


эта конструкция от чего то отказывается работать в гугл хроме( как можно исправить?

Загадочный смысл этой конструкции. Кнопка сабмита отправит форму и страница перезагрузится. Или она не в форме?

Спустя 34 секунды (2.06.2012 - 15:35) Xander написал(а):
в форме конечно же)

Спустя 4 минуты, 27 секунд (2.06.2012 - 15:40) Michael написал(а):
Ну так что, кнопка должна стать недоступной после перезагрузки страницы?

Если да, то посмотри что тебе выше rooor подсказывал.

Спустя 2 часа, 21 минута, 47 секунд (2.06.2012 - 18:02) Xander написал(а):
чет не получается все равно так(

Спустя 41 минута, 21 секунда (2.06.2012 - 18:43) redreem написал(а):
размести этот скрипт перед закрывающим тэгом </body>

<script type="text/javascript">

bPressed = {

pressed:new Array(),

id:0,

control:function(el) {

if (typeof this.pressed[el.id] !== undefined) {

return false;

} else {

this.id++;
el.id = 'bPressed' + id;
this.pressed[el.id] = true;

return true;

}

}

}


</script>


а у каждой кнопки сделай onclick:

<button type="submit" onclick="return bPressed.control(this);" class="button">добавить</button>

Спустя 54 минуты, 54 секунды (2.06.2012 - 19:38) Xander написал(а):

if (typeof this.pressed[el.id] !== undefined) {



если сделать typeof слитно как сейчас то кнопка вообще не нажимается) а если раздельно, то не блокируется после нажатия!

Спустя 19 часов, 57 минут, 38 секунд (3.06.2012 - 15:35) Xander написал(а):
и как быть тогда?

Спустя 1 день, 4 часа, 47 минут, 39 секунд (4.06.2012 - 20:23) Xander написал(а):
решил вот таким образом!!



function SubmitControl(tocheack)
{
if (document.all || document.getElementById)
{
for (i=0; i < tocheack.length;i++)
{
if(tocheack.elements[i].type.toLowerCase()=="submit"||tocheack.elements[i].type.toLowerCase()=="reset")
{
tocheack.elements[i].disabled = true
}
}
}
}



<form method="POST" onsubmit=SubmitControl(this) action="">
<button
type="submit" class="button">добавить</button>
</form>

Спустя 56 минут, 59 секунд (4.06.2012 - 21:20) killer8080 написал(а):
Цитата (Xander @ 4.06.2012 - 20:23)
решил вот таким образом!!

ещё скажи что оно работает biggrin.gif

Спустя 42 минуты, 30 секунд (4.06.2012 - 22:03) Xander написал(а):
ага не поверишь но работает)

Спустя 39 минут, 14 секунд (4.06.2012 - 22:42) killer8080 написал(а):
Не поверю, не может такого быть smile.gif

Спустя 32 минуты, 33 секунды (4.06.2012 - 23:14) Xander написал(а):
возьми сам да попробуй)) ну или предложи другое решение)

Спустя 11 часов, 1 минута, 14 секунд (5.06.2012 - 10:16) killer8080 написал(а):
Xander
да че тут пробовать?
Ну навесил ты обработчик на сабмит, и что? Страница все равно перезагрузиться, что ей должно помешать? Да и функция какая то странная. Что по твоему должна делать эта проверка?
if (document.all || document.getElementById)
...


Я изначально дал тебе не правильный совет, не правильно понял задачу. Думал что кнопка дергает какую то функцию, и после нажатия должна деактивроваться, но раз тебе нужно отправлять форму, значит блокировать кнопку нужно на серверной стороне, как уже показывали выше. Сохраняй флаг, о нажатии кнопки в сессии или куках, и в зависимости от него, блокируй кнопку на уровне html-я.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.