• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dodanie funkcji do formularza w JavaScripcie

Object Storage Arubacloud
0 głosów
134 wizyt
pytanie zadane 3 stycznia 2016 w JavaScript przez Buri Nowicjusz (120 p.)

Mam mały problem, chciałem dodać podaną funkcję do formularza, niestety wszelkie samodzielne próby zakończyły się niepowodzeniem, od razu chciałbym uprzedzić, że jestem żółtodziobem JavaScriptu. Funkcja ma sprawdzać czy imię i nazwisko jest wpisane oraz czy podane prze użytkownika hasła są identyczne. Czy ktoś wie co należy zmienić aby całość zaczęła działać?

 

//Funkcja którą chciałbym dodać
<script type="text/javascript"">
function validate(form) {
	if(form.firstname.value.length <= 0 || form.lastname.value.length <= 0){
		alert('Podaj imię i nazwisko!');
		return false;
	}
	if(form.pass.value.length < 3 || form.pass.value.length > 9){
		alert('Twoje hasło musi mieć min. 3 znaki !');
		return false;
	}
	if(form.pass.value != form.passConfirm.value){
		alert('Podane hasła nie zgadzają się!');
		return false;
	}
	return true;
}</script>

//A tutaj działająca funkcja

<script type="text/javascript">


function K_Walidacja(F_Nazwa,PrzyciskID) {
    var i = 0; P_Status = 0;
    var Tablica_N = new Array(), Tablica_T = new Array(), Tablica_S = new Array();
    this.Przycisk = document.getElementById(PrzyciskID);

    this.M_Pole = function(P_Nazwa,P_Typ,P_Wzorzec) {
        Tablica_N[i] = P_Nazwa;
        Tablica_T[i] = P_Typ;
        Tablica_S[i] = P_Wzorzec;
        i++;
    };
    this.Przycisk.onclick = function() { 
        var Tablica_Dlugosc = Tablica_N.length;
        for (var i=0; i<Tablica_Dlugosc; i++) {	
            M_SprawdzPole(F_Nazwa,Tablica_N[i],Tablica_T[i],Tablica_S[i]);
        };
        if (P_Status == Tablica_Dlugosc) {
            M_Komunikat(F_Nazwa,"Formularz wypełniony prawidłowo!");
            P_Status = 0;
            return false; 
        }
        else { 
            M_Komunikat(F_Nazwa,"Formularz wypełniony nieprawidłowo!");
            P_Status = 0;
            return false;
        };
    };
};





K_Walidacja.prototype.Prototyp = function() {
    M_SprawdzPole = function(F_Nazwa,P_Nazwa,P_Typ,P_Wzorzec) {    
        var P_Wartosc = document.forms[F_Nazwa][P_Nazwa].value;
        var P_Element = document.forms[F_Nazwa][P_Nazwa];
        

        if (P_Typ == "NIP" || P_Typ == "REGON9" || P_Typ == "PESEL") {
            if (M_SprawdzNumer(P_Wartosc,P_Typ)) {
                P_Element.className = "K_Walid_OK";
                P_Status++;
            }
            else {
                P_Element.className = "K_Walid_Bl";
                P_Status--;
            };
        }
        else if (P_Wzorzec.test(P_Wartosc)) { 
            P_Element.className = "K_Walid_OK";
            P_Status++;
        }
        else { 
            P_Element.className = "K_Walid_Bl";
            P_Status--;
        };
    };
    M_SprawdzNumer = function(P_Wartosc,P_Typ);
  
        if (P_Typ == "PESEL") {
            var P_Dlugosc = 11; 
            var CyfraKontrolna = parseInt(P_Wartosc.charAt(10));
            var TablicaWag = [9, 7, 3, 1, 9, 7, 3, 1, 9, 7];
            var Dzielnik = 10;
        };
        if (P_Wartosc.length != P_Dlugosc || parseInt(P_Wartosc, 10) <= 0) { return false; };
        var SumaKontrolna = 0;
        for (var i = 0; i<P_Dlugosc-1; i++) {
            SumaKontrolna += parseInt(P_Wartosc.charAt(i)) * TablicaWag[i];
        }                     
        var WynikKontrolnyModulo = SumaKontrolna % Dzielnik;
        var ResztaKontrolna = (WynikKontrolnyModulo == 10)?0:WynikKontrolnyModulo;
        if (ResztaKontrolna == CyfraKontrolna) { return true; }
        else { return false; };
    };
    M_Komunikat = function(F_Nazwa,K_Tekst) {
        var S_Komunikat = document.getElementById("K_"+F_Nazwa);
        if (S_Komunikat != null) { S_Komunikat.parentNode.removeChild(S_Komunikat); }
        var Komunikat=document.createElement("div");
        Komunikat.setAttribute("id", "K_"+F_Nazwa);
        
        Komunikat.className = "K_Walidacja_Komunikat";
        var KomunikatTekst = document.createTextNode(K_Tekst);
        Komunikat.appendChild(KomunikatTekst);
        document.forms[F_Nazwa].appendChild(Komunikat);
    };


};
</script>
<script type="text/javascript">

var WzorzecUlica = /^[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź]{3,100}$|^[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź]+[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź0-9\s\-\.\/]+[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź0-9]{1,100}$/;
var WzorzecKod = /^[0-9]{2}-[0-9]{3}$/;
var WzorzecMiasto = /^[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź]{3,100}$|^[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź]+[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź0-9\s\-]+[A-Za-zĄĘĆŁŃÓŚŻŹąęćłńóśżź0-9]{1,100}$/;

var WzorzecTel = /^[0-9]{9}$/;
var WzorzecNiepuste = /\S{3}/;
var WzorzecEmail = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
</script>
<script type="text/javascript">

var O_Walidacja1 = new K_Walidacja("F_Waliduj1","F_Przycisk1");
O_Walidacja1.Prototyp();

O_Walidacja1.M_Pole("P_Ulica1","Ulica",WzorzecUlica);
O_Walidacja1.M_Pole("P_Kod1","Kod",WzorzecKod);
O_Walidacja1.M_Pole("P_Miasto1","Miasto",WzorzecMiasto);

O_Walidacja1.M_Pole("P_PESEL1","PESEL","");

O_Walidacja1.M_Pole("P_Tel1","Tel",WzorzecTel);
O_Walidacja1.M_Pole("P_Email1","Email",WzorzecEmail);
O_Walidacja1.M_Pole("P_Kontakt1","Kontakt",WzorzecKontakt1);
O_Walidacja1.M_Pole("P_Tekst1","Tekst",WzorzecNiepuste);

</script>

1 odpowiedź

0 głosów
odpowiedź 3 stycznia 2016 przez ScriptyChris Mędrzec (190,190 p.)

Jeśli plik HTML nie jest za długi, to czy mógłbyś całość wstawić (i dać linka) na jsfiddle.net lub jsbin.com, aby można było w akcji zobaczyć co nie działa?

Podobne pytania

+1 głos
1 odpowiedź 3,240 wizyt
+1 głos
2 odpowiedzi 465 wizyt
+1 głos
2 odpowiedzi 1,394 wizyt
pytanie zadane 17 września 2020 w JavaScript przez Suchar Nowicjusz (230 p.)

92,540 zapytań

141,383 odpowiedzi

319,482 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...