Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tylko raz można wysłać formularz z div używając .submit()
michal_s
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

Ostrzeżenie: (0%)
-----


mam sobie pewnego diva

  1.  
  2. <div id="moj_submit">
  3. jakiś tekst
  4. </div>


I spełnia on funkcję submita wykorzystując jquery w taki sposób:

  1. $("#jakis_form").submit();


Jak można zrobić to, aby użytkownik mógł tylko raz wysłać formularz? Bo na razie gdy kliknie w niego od razu np 5 razy to wyśle się 5 razy i jest mały problem potem...
Można go po kliknięciu i wysłaniu formularza wyłączyć jakoś czasowo? Albo inaczej ustawić, że może kliknąć tylko raz po jego wysłaniu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
_Borys_
post
Post #2





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


[JAVASCRIPT] pobierz, plaintext
  1. $("#jakis_form").submit(function(){
  2. // walidacja formularza i wysłanie
  3. $("#jakis_form").unbind('submit');
  4. });
[JAVASCRIPT] pobierz, plaintext

Inny sposób
("#jakis_form").one('submit',function(){});
Go to the top of the page
+Quote Post
michal_s
post
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

Ostrzeżenie: (0%)
-----


Walidacje mam wcześniej i w zależności od niej robią się różne rzeczy. Jak jest wszystko ok to formularz ma się wysłać więc robię tak jak ty piszesz:

  1.  
  2. else //czyli wszystko jest ok z formularzem
  3. {
  4. $("#jakis_form").submit(function(){
  5. $("#jakis_form").submit();
  6. $("#jakis_form").unbind('submit');
  7. });
  8. }


Tylko, że wtedy w ogolę się nic nie dzieje i po kliknięciu na diva, nie ma żadnej reakcji.
Go to the top of the page
+Quote Post
_Borys_
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 190
Dołączył: 5.02.2011
Skąd: 64-800

Ostrzeżenie: (0%)
-----


Po co dwa razy submit();
Ewentualnie dodaj return false; na końcu funkcji submit()
EDIT:
Teraz widzę że po przeładowaniu strony nie działają te sposoby, chyba najlepszym sposobem będzie sprawdzanie w php czy formularz został już wysłany, jeśli wysłany to zapisanie gdzieś a potem przy kolejnych wysłaniach brak reakcji lub wysłanie wiadomości do przeglądarki. Trzeba też identyfikować przy tym użytkownika jakoś, przy sprawdzaniu czy był formularz wysłany, po stronie php.
Go to the top of the page
+Quote Post
michal_s
post
Post #5





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

Ostrzeżenie: (0%)
-----


No właśnie trochę mi nie po drodze z tym php. Wolałbym, aby to działało jakoś tak, że jak ktoś nakliknie raz to nie będzie mógł tego zrobić po raz kolejny a w tym czasie strona się poprawnie załaduje po wysłaniu submita i nic nie będzie dublowane..
Go to the top of the page
+Quote Post
adamantd
post
Post #6





Grupa: Zarejestrowani
Postów: 228
Pomógł: 7
Dołączył: 15.08.2012
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


  1.  
  2. var tmp=0;
  3. $("#jakis_form").submit(function(){
  4. if(tmp==0){tmp=1;}else{return false;}
  5.  
  6. //walidacja itd
  7.  
  8. }
  9.  
  10.  
  11.  


jeżeli wyślesz raz formularz to dopóki nie przeładujesz strony nie będzie się dało wysłać go ponownie, nie wiem czy o to Ci chodzi
to najprostrza blokada przycisku
Go to the top of the page
+Quote Post
michal_s
post
Post #7





Grupa: Zarejestrowani
Postów: 148
Pomógł: 1
Dołączył: 11.12.2010

Ostrzeżenie: (0%)
-----


Dzięki. Ładnie działa.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 12:52