Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie wypełnienia pól formularza przed wysyłką
trifek
post 7.11.2016, 09:58:55
Post #1





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


Witam serdecznie,
Na stronie mam formularz.
Pod formularzem mam link:
  1. <a class="btn btn-openid text" href="link_do_powrotu.html" onclick="return confirm('Czy napewno chcesz zapisać jako poprawny?')"> Zapisz poprawny </a>


W tej chwili działa to tak, że po kliknięciu powyższego linku wyskakuje okienko z pytaniem. Po wybraniu TAK - użytkownik zostaje przekierowany na stronę link_do_powrotu.html.

Chciałbym żeby jeszcze przed przejściem na podstronę link_do_powrotu.html skrypt sprawdził czy znajdujący się na stronie formularz (składający się z pól: input text, select, textarea, radio) jest kompletny
(każdy ma jakąś wartość). Jeśli wszystko jest wypełnione - to wtedy przechodzimy na powyższy link. Jeśli jednak któraś wartość nie byłaby wypełniona - to powinien pokazać się komunikat błędu.

Na stronie mam tylko jeden formularz.

Wie ktoś może jak to zrobić?

Bardzo proszę o pomoc
Go to the top of the page
+Quote Post
rafkon1990
post 7.11.2016, 10:01:18
Post #2





Grupa: Zarejestrowani
Postów: 37
Pomógł: 9
Dołączył: 14.09.2016
Skąd: Śląskie

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


Atrybut required wystarczyć.
Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 10:14:30
Post #3





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


Zapomniałem, Chciałbym uniknąć atrybutu required:)

Poza tym chciałbym żeby było pytanie o to przekierowanie, wtedy sprawdzanie i przekierowanie/alert o błędzie smile.gif
Go to the top of the page
+Quote Post
viking
post 7.11.2016, 10:20:42
Post #4





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


A jest jakiś konkretny powód tego? Wspiera go 99% przeglądarek (według caniuse) i robi to co potrzebujesz.


--------------------
Go to the top of the page
+Quote Post
rafkon1990
post 7.11.2016, 10:22:10
Post #5





Grupa: Zarejestrowani
Postów: 37
Pomógł: 9
Dołączył: 14.09.2016
Skąd: Śląskie

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


w takim razie robisz walidację w javascriptcie


Kod
<script>
function goIfConfirmedAndValid(){
   if(confirm('Czy napewno chcesz zapisać jako poprawny?')){
      // walidacja pól
      if(walidacja_ok){
      return true;
      }
      else {
         alert("Uzupełnij pola ...");
         return false;
      }
   }
   return false;
}
</script>



  1. <a class="btn btn-openid text" href="link_do_powrotu.html" onclick="return goIfConfirmedAndValid();"> Zapisz poprawny </a>


Twój zamysł jest ... niewygodny.

Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 10:27:51
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


tak, bo mam formularz składający się z buttona (zapisuje formularz za pomocą tradycyjnego POST'a ) - ten zapis nie wymaga wszystkich pól
Ten link to zwykły <a href=) - za jego pomocą chciałbym zrobić validację + przekierowanie na url - ten zapis ma wymagać wypełnienie wszystkich pól smile.gif

Cytat(rafkon1990 @ 7.11.2016, 10:22:10 ) *
w takim razie robisz walidację w javascriptcie


Kod
<script>
function goIfConfirmedAndValid(){
   if(confirm('Czy napewno chcesz zapisać jako poprawny?')){
      // walidacja pól
      if(walidacja_ok){
      return true;
      }
      else {
         alert("Uzupełnij pola ...");
         return false;
      }
   }
   return false;
}
</script>



  1. <a class="btn btn-openid text" href="link_do_powrotu.html" onclick="return goIfConfirmedAndValid();"> Zapisz poprawny </a>


Twój zamysł jest ... niewygodny.




O coś takiego mi chodziło smile.gif

W jaki sposób dodać do tego w miejscu tego "walidacja_ok" walidację wszystkiego co znajduje się w formularzu (selecty, textarea, texty, radioboxy itp)?
Formularz jest dynamiczny (generowany na podstawie bazy)

Ten post edytował trifek 7.11.2016, 10:28:22
Go to the top of the page
+Quote Post
viking
post 7.11.2016, 10:35:42
Post #7





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


https://www.sitepoint.com/basic-jquery-form...ation-tutorial/


--------------------
Go to the top of the page
+Quote Post
rafkon1990
post 7.11.2016, 10:42:36
Post #8





Grupa: Zarejestrowani
Postów: 37
Pomógł: 9
Dołączył: 14.09.2016
Skąd: Śląskie

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


Cytat(trifek @ 7.11.2016, 10:27:51 ) *
tak, bo mam formularz składający się z buttona (zapisuje formularz za pomocą tradycyjnego POST'a ) - ten zapis nie wymaga wszystkich pól
Ten link to zwykły <a href=) - za jego pomocą chciałbym zrobić validację + przekierowanie na url - ten zapis ma wymagać wypełnienie wszystkich pól smile.gif





O coś takiego mi chodziło smile.gif

W jaki sposób dodać do tego w miejscu tego "walidacja_ok" walidację wszystkiego co znajduje się w formularzu (selecty, textarea, texty, radioboxy itp)?
Formularz jest dynamiczny (generowany na podstawie bazy)


  1. var walidacka_ok = true;


Dla każdego dynamicznego pola formularza generujesz walidację tego pola, a jeśli ów pole nie spełnia wymaganych kryteriów, przestawiasz flagę na false i tym samych uniemożliwiasz (teoretycznie tylko) przesłanie formularza .
Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 10:50:02
Post #9





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


Kombinuję coś takiego:
  1. function validateForm() {
  2. var valid = true;
  3. $('.validate-form').each(function () {
  4. if ($(this).val() === '') {
  5. valid = false;
  6. return 0;
  7. }
  8. });
  9. return 1
  10. }
  11.  
  12. function goIfConfirmedAndValid(){
  13. if(confirm('Czy napewno chcesz zapisać jako poprawny?')){
  14. // walidacja pól
  15.  
  16. alert(validateForm());
  17.  
  18. if(validateForm() == 1){
  19. return true;
  20. }
  21. else {
  22. alert("Proszę uzupełnić wszystkie pola!!");
  23. return false;
  24. }
  25. }
  26. return false;
  27. }



ale zawsze wyskakuje mi "1" i następuje przekierowanie (nie widzi pustych pól):/

Ten post edytował trifek 7.11.2016, 10:52:08
Go to the top of the page
+Quote Post
nospor
post 7.11.2016, 10:54:58
Post #10





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




return 0 jest w srodku innej funkcji wiec return dotyczy tej srodkowej funkcji a nie twojej glownej... dosc logiczne.

Na koncu nie:
return 1

a:
return valid ? 1 : 0;


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 10:57:12
Post #11





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


Cytat(nospor @ 7.11.2016, 10:54:58 ) *
return 0 jest w srodku innej funkcji wiec return dotyczy tej srodkowej funkcji a nie twojej glownej... dosc logiczne.

Na koncu nie:
return 1

a:
return valid ? 1 : 0;



coś takiego:
  1. function validateForm() {
  2. var valid = true;
  3. $('.validate-form').each(function () {
  4. if ($(this).val() === '') {
  5. valid = false;
  6. return 0;
  7. }
  8. });
  9. return valid ? 1 : 0;
  10. }
  11.  
  12. function goIfConfirmedAndValid(){
  13. if(confirm('Czy napewno chcesz zapisać jako poprawny?')){
  14. // walidacja pól
  15.  
  16. alert(validateForm());
  17.  
  18. if(validateForm() == 1){
  19. return true;
  20. }
  21. else {
  22. alert("Proszę uzupełnić wszystkie pola!!");
  23. return false;
  24. }
  25. }
  26. return false;
  27. }


questionmark.gifsmile.gif

Jeśli tak, to w dalszym ciągu nie działa sad.gif
Go to the top of the page
+Quote Post
nospor
post 7.11.2016, 11:04:00
Post #12





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




No dobra, a czy twoje pola formularza maja w ogole klase validate-form?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 11:20:19
Post #13





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


OK, zadziałało smile.gif


Dziękuję za pomoc smile.gif

Ten post edytował trifek 7.11.2016, 11:25:46
Go to the top of the page
+Quote Post
nospor
post 7.11.2016, 11:22:00
Post #14





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




facepalmxd.gif

Skup sie: POLA FORMULARZA a nie FORMULARZ


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 11:26:19
Post #15





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


Cytat(nospor @ 7.11.2016, 11:22:00 ) *
facepalmxd.gif

Skup sie: POLA FORMULARZA a nie FORMULARZ



Tak, właśnie teraz zauważyłem gafę smile.gif))


Go to the top of the page
+Quote Post
viking
post 7.11.2016, 11:27:06
Post #16





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


Jak już tak robisz (chociaż gotowa klasa validate ma też grupy walidacji,ale ok) to ja bym poszedł drogą dodawania/zdejmowania required. Choćby dlatego że jak sam mówisz form może mieć selecty (które mogą być multiple a wtedy val() zwraca tablicę), checkboxy.


--------------------
Go to the top of the page
+Quote Post
nospor
post 7.11.2016, 11:28:16
Post #17





Grupa: Moderatorzy
Postów: 36 455
Pomógł: 6292
Dołączył: 27.12.2004




Cytat
Tak, właśnie teraz zauważyłem gafę
Jak to mowia: lepiej pozno niz wcale wink.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
trifek
post 7.11.2016, 11:28:23
Post #18





Grupa: Zarejestrowani
Postów: 340
Pomógł: 0
Dołączył: 28.09.2015

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


dziękuję za pomoc smile.gif

Ten post edytował trifek 7.11.2016, 11:39:06
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 Wersja Lo-Fi Aktualny czas: 25.04.2024 - 07:35