Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как отключить кнопку при клике? по onClick делать кнопку "disabled" 
V
    Опции темы
ochnev
Дата 31.7.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Подскажите, как проще всего отключить кнопку при клике?
То есть кликнули по кнопке "submit", и она стала disabled. То есть защита от повторного клика.

PM MAIL   Вверх
bars80080
Дата 31.7.2008, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



onclick="this.disabled=true;" поможет?

что при нажатии страница не сразу уходит?
PM MAIL WWW   Вверх
comtat
Дата 31.7.2008, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 7
Всего: 71



Цитата(ochnev @  31.7.2008,  12:02 Найти цитируемый пост)
То есть кликнули по кнопке "submit", и она стала disabled. То есть защита от повторного клика.

Имхо тогда нужно дизейблить и все элементы формы, типа ... идет обработка


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Samotnik
Дата 31.7.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Super star !
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 7192
Регистрация: 4.11.2006
Где: Минск City

Репутация: нет
Всего: 191



Код

<html>
<head>
<title>q</title>
</head>
<body>
<input type="submit" id="ITSubmit" onclick="disableInput()">
<script>
   function  disableInput()  {
       var element =  document.getElementById('ITSubmit');
       element.disabled = "true";  
   }
</script>
</body>
</html>

PM MAIL   Вверх
bars80080
Дата 31.7.2008, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



да нет, я так понимаю трабла возникает в случае тугоумия сервера или узости канала. кнопку нажал и даже не видно, послалось что? может не попал? жмёшь снова, а потом смотришь как два коммента от тебя сидят
PM MAIL WWW   Вверх
ochnev
Дата 31.7.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 253
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Цитата(bars80080 @ 31.7.2008,  12:56)
да нет, я так понимаю трабла возникает в случае тугоумия сервера или узости канала. кнопку нажал и даже не видно, послалось что? может не попал? жмёшь снова, а потом смотришь как два коммента от тебя сидят

А ещё на ноутбуке если по touch pad'у пальцем случайно 2 раза чиркнешь, то получается как бы двойной клик. Даже если сервер быстрый, форма успевает выстрелить дважды. А там, например, финансовые данные в intranet-системе... Короче, предохраняться тут нужно обязательно.

Вариант от Samotnik - то, что надо.

Благодарю.

PM MAIL   Вверх
Dima 2015
Дата 31.7.2008, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 287
Регистрация: 16.3.2008
Где: SPb

Репутация: нет
Всего: 2



bars80080, 
ochnev, 

Если не ошибаюсь, есть такая тема - если дизэйблишь кнопку сабмита во время клика то в одной из версий оперы перестает отправляться форма, поэтому мы защиту от двойного нажатия делали так: в качестве кнопки для отправки формы используется обычный <input type="button">.

Затем ему на onclick вешается JS ф-ция function submitForm():

Код

var form_sent = false; // Флаг отправлена ли форма
    
    function submitForm() {
        
        if( form_sent == false ) {
           form_sent = true;
           document.getElementById('my_form').submit();
        }
    }




PM MAIL ICQ   Вверх
ksnk
Дата 3.8.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 48
Всего: 386



А ентером форма отправляется? Может лучше менять в форме onsubmit?
Код

<form  target="_blank" action="myhandle.php" onsubmit="this.onsubmit=function (){return false;};">
...
<input type="text">
...
</form>

таргет нужен для проверки на нетормозной машинке. В боевой версии нужно его удалить.

Ну, разукрасить можно бы, чтобы юзер видел, что на  каппу он таки нажал.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.