Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Jak zablokować buton na 5 sekund
Forum PHP.pl > Forum > Przedszkole
kk77
Witam,

Jak zablokować buton po kliknięciu na niego na 5 sekund.

Aktualnie używam tego rozwiązania.

  1. <form onsubmit="document.getElementById('123').disabled=true">
  2. ...
  3. <input id="123" type="submit" class="btn btn-success btn-send" value="WYŚLJ ZAMÓWIENIE" onclick="java script:this.value='WYŚLIJ PONOWNIE';">


Ale w moim formularzu po błędnym lub niekompletnym wypełnieniu jego pół, osoba nie ma możliwości ponownego wysłanie formularza. Musi przeładować stronę, a tego nie chcę.

Jak dodać do tego rozwiązania blokadę tego przycisku tylko na 5 sekund. Może być odliczanie od 5 do aktywacji buttona.

Działający formularz mam tutaj:
http://zdrowemiody.pl/formularz-sklep/

----------------

problem rozwiązany

użyłem tego rozwiązania

http://jsfiddle.net/BvYwr/1/

-------------------------------

a jednak nie rozwiązane. sad.gif

nie działa pod chrome.

Coś trzeba dodać?
sasiadstar
Nie wiem czemu ci nie działa bo u mnie pod chromem chodzi.
Sprawdź konsole błędów co ci wypluwa
kk77
A jak to sprawdzić to w konsoli?

Aktualnie testowałem te wszystkie rozwiązania (3 chyba)

http://stackoverflow.com/questions/9914286...eout-javascript

Żadne nie działa mi pod chrome.
nospor
F12 - otwiera devtools w tym i konsole
kk77
taki komunikat dostaję w konsoli chrome:

DevTools failed to parse SourceMap: http://zdrowemiody.pl/formularz-sklep/css/...rap.min.css.map

Pod FF nie mam żadnego.

Czy to jest powód?

------------------------

sprawdzałem pod smartfonem też nie działa.
nospor
Blad nie ma zwiazku z problemem.
Mi tam zarowno na twojej stronie jak i w tescie na chrome wszystko dziala. Moze napisz dokladnie czym u ciebie objawia sie blad
kk77
Pod FF wysyła formularz.

Pod Chrome nie wysyła.

Nie wysłanie pod chrome występuje tylko po zastosowaniu metod pod podanym linkiem wyżej.

http://stackoverflow.com/questions/9914286...eout-javascript

Po prosty FF wysyła, Chrome nie.

Testuje te metody: (Każda z nich zastosowana w moim formularzu powoduje, że formularz NIE zostaje WYSŁANY)

1.
  1.  
  2. function deactivatefunc()
  3. {
  4. var btn = document.getElementById("test");
  5. btn.disabled = true;
  6. var mytimer = setTimeout(activate,2000);
  7. }
  8.  
  9. function activate () {
  10. var btn = document.getElementById("test");
  11. btn.disabled = false;
  12. }
  13.  
  14.  
  15. <input type="submit" class="btn btn-success btn-send" value="WYŚLJ ZAMÓWIENIE" id="test" onclick="deactivatefunc()">
  16.  


2.
  1. var mybutton = document.getElementById("mybutton");
  2. mybutton.onclick = function() {
  3. mybutton.disabled = true;
  4. setTimeout(function() {
  5. mybutton.disabled = false;
  6. }, 2000);
  7. };
  8.  
  9.  
  10. <input type="button" id="mybutton" value="Test">
  11.  


3.
  1.  
  2. function foo(obj) {
  3. obj.disabled = true;
  4. setTimeout(function() {
  5. obj.disabled = false;
  6. }, 5000);
  7. }
  8.  
  9. <input type="submit" class="btn btn-success btn-send" value="WYŚLJ ZAMÓWIENIE" onclick="foo(this);">
sasiadstar
Weź spróbuj tak
$(function () {
zamień na $(documet).ready(function(){

kod


})
kk77
Mógłbyś napisać cały kod? Ja tylko potrafię coś skopiować, i ewentualnie zmienić wartości.
sasiadstar
Czyściłeś pamieć przeglądarki bo jak nie to js prawdopodobnie ci się nie przeładował
kk77
Tak czyściłem.

Spróbuj tego linka i powiedz, czy pod FF i pod Chrome wyskoczy 'OK'

http://zdrowemiody.pl/formularz-sklep/index2.php
sasiadstar
ff OK chrome nothing
kk77
No właśnie, nie działa. A jak to naprawić by działało także pod chrome?
bostaf
U mnie na Chrome Wersja 58.0.3029.110 (64-bit) - działa.
Boshi
Nie wiem z jakiego powodu, ale chrome bardzo mocno cachuje dane. Już nie raz się na tym przejechałem, zmieniając np coś w css, w edge gra, w chrome bez zmian.. dopiero po kilkunastu minutach zaczyna chodzić.

trueblue
W Chrome musisz wywołać metodę submit na formularzu, jeśli przycisk zatwierdzania jest disabled.
kk77
Cytat(bostaf @ 14.05.2017, 17:33:24 ) *
U mnie na Chrome Wersja 58.0.3029.110 (64-bit) - działa.



tak działa, o godzinie 13 problem rozwiązany. Nie wiem jak. Kolega mi kod poprawił. Co zrobił nie wiem, ale na pewno nie onClick
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.