Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Tylko raz można wysłać formularz z div używając .submit()
Forum PHP.pl > Forum > Po stronie przeglądarki
michal_s
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?
_Borys_
[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(){});
michal_s
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.
_Borys_
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.
michal_s
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..
adamantd
  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
michal_s
Dzięki. Ładnie działa.
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.