Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Problem z for i return false
Koniczynka
post 13.01.2008, 15:44:28
Post #1





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Witajcie,

Chciałem napisać skrypt w JavaScript do przyjaznych formularzy. Chodzi konkretniej o weryfikację wartości inputów i textarea, które mają jako id przypisane cyfry, które zarazem oznaczają ilość wykonania pętli for. W wypadku znalezienia nieprawidłowości ma ona zostać przerwana i uruchomiona pętla if z przerywaniem wykonywania formularza.

Kod
window.onload = sprawdzajFormularz;

function sprawdzajFormularz(nazPola)
                        {
                        document.for_prod.onsubmit = sprawdzPola(nazPola);                                              
                        }
function sprawdzPola(nazPola)
                        {


var ilosc = nazPola;
var error = false;

                    for (var i = 1; i <= ilosc;i++ ) /*pętla sprawdzająca wartość pola
                                            jeżeli jest puste, zatrzymuje wykonywanie formularza*/
                        {
                            

                            alert(i);
                            var ktorePole = i;
                            var nazwa = document.getElementById(ktorePole).value;
                            var valid_3 = /^[\s]+$/.test(nazwa);
                            
                    

                            if(document.getElementById(ktorePole).value == "" || valid_3 === true)
                            {
                            document.getElementById(ktorePole).style.border = "2px solid #000000";
                            document.getElementById(ktorePole).value = "Musisz uzupełnić to pole!";    
                            error = true;
                            
                              
                            alert(error);
                            
                            break;

                            
                            }

                        
                        
                        }
                        
if (error){return false;}
                        
                        
                            }



  1. <form method="post" action="#" name="for_prod" onSubmit="sprawdzajFormularz('8')">
  2. <div class="pol_d"><span class="tek_d">Nazwa</span><span class="polk_d"><input type="text" name="nazz" class="inp_d" id="1" /></span></div>


I teraz mam problem, bo formularz mimo wszystko zostaje zatwierdzony i w wypadku jakiegoś pustego pola pętla for rzeczywiście zostaje przerwana (np. dla pustego pola o id 4 pokazują się alerty: 1, 2, 3, 4 i na końcu true [wartość error]). Mimo wszystko formularz jest odświeżany.

Próbowałem różne ustawienia z tą ostatnią pętla if (była w for, w if z pętli for, poza nią, na początku, na środku i na końcu), ale żadne nie było poprawne, to znaczy formularz analizowany był dalej i zatwierdzany mimo komunikatów o błędach w pustych inputach.

Jeżeli ktoś z Was domyśla się, co może powodować ten błąd, prosiłbym o wiadomość. Z góry dziękuję za pomoc.
Go to the top of the page
+Quote Post
zbig
post 14.01.2008, 10:24:54
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

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


Witam ! Wywal z kodu window.onload = sprawdzajFormularz i funkcje sprawdzajFormularz
Przy onSubmit napisz onSubmit="return sprawdzPola(nazPola)"

Pozdrawiam


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post
gekon
post 14.01.2008, 14:31:10
Post #3





Grupa: Zarejestrowani
Postów: 614
Pomógł: 7
Dołączył: 10.11.2003
Skąd: Rzeszów/Kraków

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


1. Id nie może zaczynać się od cyfry: http://www.w3.org/TR/html401/types.html#type-name
2.
  1. window.onload = function(){
  2. myForm = document.getElementById('my-form');
  3.  
  4. myForm.onsubmit = function(){
  5. var i = this.getElementsByTagName('input').length;
  6. i += this.getElementsByTagName('textarea').length;
  7. sprawdzPola(i);
  8. }
  9. }


Ten post edytował gekon 14.01.2008, 14:32:10


--------------------
Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ
Go to the top of the page
+Quote Post
Koniczynka
post 14.01.2008, 18:52:33
Post #4





Grupa: Zarejestrowani
Postów: 61
Pomógł: 0
Dołączył: 24.05.2006

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


Dziękuję Wam serdecznie za uwagi i propozycje. Działa teraz jak należy.
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: 19.07.2025 - 07:48