Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: disabled кнопки после отправки формы на определенное время

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ninjajnin
Отправлено: 05 Ноября, 2015 - 11:23:41
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Ребят, как залочить кнопку на время после нажатия средствами JavaScript?

Нужно что бы в теге input прописывался disabled на, скажем, 10 секунд... потом убирался прочь.

Вот так с disabled
CODE (html):
скопировать код в буфер обмена
  1. <form action = '#'>
  2. <input size = "15" ><br>
  3. <textarea ></textarea><br>
  4. <input type = "submit" id = "bu" value = "Отправить" disabled><br>
  5. </form>
 
 Top
OrmaJever
Отправлено: 05 Ноября, 2015 - 11:26:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1. onclick='dis(this)'
  2. ...
  3.  
  4. function dis( elem ) {
  5.   elem.disabled='disabled';
  6.   setTimeout(function( elem ) {
  7.      elem.disabled='';
  8.   }, 10000, elem)
  9. }

вроде должно работать, хоть мог где-то и ошибиться


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
ninjajnin
Отправлено: 05 Ноября, 2015 - 11:29:14
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Наверное нужно было сразу сказать что я полный даун в JavaScript... Скажите, пожалуйста, куда пихать код?? Извините за тупой вопрос.
 
 Top
SAD
Отправлено: 05 Ноября, 2015 - 11:30:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




а накой черт Вы создали еще одну тему?
 
 Top
ninjajnin
Отправлено: 05 Ноября, 2015 - 11:31:48
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Разобрался. Ну так раздел не подходит.
(Добавление)
Такая же беда, кнопка лочится, а форма не отправляется... все как всегда, пойду пожру песка...

(Отредактировано автором: 05 Ноября, 2015 - 11:45:10)

 
 Top
SAD
Отправлено: 05 Ноября, 2015 - 11:46:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




я Вам написал решение в первой теме, в чем проблема ?
 
 Top
ninjajnin
Отправлено: 05 Ноября, 2015 - 11:52:32
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Ваше решение на ajax, которого я не понимаю, а на разбор кода уйдет время, которого у меня нет. JavaScript еще более-менее могу логически прочесть и понять.
 
 Top
SAD
Отправлено: 05 Ноября, 2015 - 11:56:39
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




так покажите Ваш код отправки ajax запрооса и мы его поправим. или по Вашему тут экстрасенсы сидят?
 
 Top
ninjajnin
Отправлено: 05 Ноября, 2015 - 12:03:20
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Да я готов признать Вас кем угодно, если эта штука заработает. Код не мой, и отчасти в этом проблема тоже. Модифицировал то, что понимал.

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. <script type="text/javascript">
  3.  
  4. $(document).ready(function () {
  5.     $("#pac_form").submit(Send); // вешаем на форму с именем и сообщением событие которое срабатывает кодга нажата кнопка "Отправить" или "Enter"
  6.        
  7.     $("#pac_text").focus(); // по поле ввода сообщения ставим фокус
  8.     setInterval("Load();", 2000); // создаём таймер который будет вызывать загрузку сообщений каждые 2 секунды (2000 милесукунд)
  9. });    
  10.  
  11. // Функция для отправки сообщения
  12. function Send() {
  13.  
  14.     // Выполняем запрос к серверу с помощью jquery ajax: $.post(адрес, {параметры запроса}, функция которая вызывается по завершению запроса)
  15.     $.post("ajax.php",
  16.         {
  17.                
  18.         act: "send",  // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
  19.         name: $("#pac_name").val(), // имя пользователя
  20.         text: $("#pac_text").val() //  сам текст сообщения
  21.     },
  22.      Load ); // по завершению отправки вызвовем функцию загрузки новых сообщений Load()
  23.  
  24.     $("#pac_text").val(""); // очистим поле ввода сообщения
  25.     $("#pac_text").focus(); // и поставим на него фокус
  26.        
  27.  
  28.     return false; // очень важно из Send() вернуть false. Если этого не сделать то произойдёт отправка нашей формы, те страница перезагрузится
  29. }
  30.  
  31.  
  32. var last_message_id = 0; // номер последнего сообщения, что получил пользователь
  33. var load_in_process = false; // можем ли мы выполнять сейчас загрузку сообщений. Сначала стоит false, что значит - да, можем
  34.  
  35. // Функция для загрузки сообщений
  36. function Load() {
  37.     // Проверяем можем ли мы загружать сообщения. Это сделанно для того, что бы мы не начали загрузку заново, если старая загрузка ещё не закончилась.
  38.     if(!load_in_process)
  39.     {
  40.             load_in_process = true; // загрузка началась
  41.             // отсылаем запрос серверу, который вернёт нам javascript
  42.         $.post("ajax.php",
  43.         {
  44.             act: "load", // указываем на то что это загрузка сообщений
  45.             last: last_message_id, // передаём номер последнего сообщения который получил пользователь в прошлую загрузку
  46.             rand: (new Date()).getTime()
  47.         },
  48.             function (result) { // в эту функцию в качестве параметра передаётся javascript код, который мы должны выполнить
  49.                     eval(result); // выполняем скрипт полученный от сервера
  50.                     $(".chat").scrollTop($(".chat").get(0).scrollHeight); // прокручиваем сообщения вниз
  51.                     load_in_process = false; // говорим что загрузка закончилась, можем теперь начать новую загрузку
  52.         });
  53.     }
  54. }

(Добавление)
сама форма выглядит так:

CODE (html):
скопировать код в буфер обмена
  1. <div class = "chat">
  2. <div id = "chat_area"></div>
  3. </div>
  4. <div class = "hidden" id = "cat1">
  5. <form id = "pac_form" action=''>
  6. <input size = "15" type = "text" id = "pac_name" placeholder = "Имя"><br>
  7. <textarea id = "pac_text"  rows = "5" cols = "21" placeholder = "Текст"></textarea><br>
  8. <input type = "submit" id = "bu" value = "Отправить"><br><br>
  9. </form>
  10. </div>

(Отредактировано автором: 05 Ноября, 2015 - 12:04:31)

 
 Top
SAD
Отправлено: 05 Ноября, 2015 - 12:46:06
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




CODE (javascript):
скопировать код в буфер обмена
  1. function Send() {
  2.  
  3.     // Выполняем запрос к серверу с помощью jquery ajax: $.post(адрес, {параметры запроса}, функция которая вызывается по завершению запроса)
  4.     var $button = $('#bu');
  5.  
  6.     $button.prop('disabled', true);
  7.  
  8.     $.post("ajax.php",
  9.         {
  10.                
  11.         act: "send",  // указываем скрипту, что мы отправляем новое сообщение и его нужно записать
  12.         name: $("#pac_name").val(), // имя пользователя
  13.         text: $("#pac_text").val() //  сам текст сообщения
  14.     },
  15.      Load )  // по завершению отправки вызвовем функцию загрузки новых сообщений Load()
  16.      .always(function () {
  17.        $button.prop('disabled', false);
  18.      });
  19.  
  20.     $("#pac_text").val('').focus();; // очистим поле ввода сообщения и поставим на него фокус
  21.  
  22.        
  23.  
  24.     return false; // очень важно из Send() вернуть false. Если этого не сделать то произойдёт отправка нашей формы, те страница перезагрузится
  25. }

(Отредактировано автором: 05 Ноября, 2015 - 12:46:57)

 
 Top
ninjajnin
Отправлено: 09 Ноября, 2015 - 08:35:04
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




не работает... если до отправки сообщения в чат адресная строка имела вид
test1.ru/

то после отпраки (сообщение, кстати, не добавилось в базу)
test1.ru/?

(Отредактировано автором: 09 Ноября, 2015 - 08:35:32)

 
 Top
SAD
Отправлено: 09 Ноября, 2015 - 11:35:16
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Цитата:
не работает...


Знаете как выглядит эта фраза? Жаль, что не нашел шутки про подобные описания проблем.

Ошибка, обычно, сидит перед монитором.

Скрипт, который представлен выше никаким образом не меняет url и он никаким образом НАПРЯМУЮ не отвечает за добавление записи в базу.

Вы пробовали дебажить, были ли ошибки в консоли бразуера?
 
 Top
ninjajnin
Отправлено: 11 Ноября, 2015 - 15:24:09
Post Id


Новичок


Покинул форум
Сообщений всего: 38
Дата рег-ции: Сент. 2015  


Помог: 0 раз(а)




Короче ясно все... пойду почитаю основы ajax...
 
 Top
SAD
Отправлено: 11 Ноября, 2015 - 22:00:14
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




А чего Вы ожидаете после того как нормально не описали задачу? Не привели пример скрипта как с фронтенда так и с бэкенда. Тут нет ясновидящих и подобного рода людей.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB