Cauta rapid aici ↑

Cum sa creezi un camp anti spam in JavaScript

Campurile anti spam sunt foarte utile in momentul cand ne dorim sa facem validarea unui formular cu scopul de a afla inca odata ca in spatele acelui formular este sigur o persoana fizica care il completeaza si nu un soft foarte bine gandit. Validarea unui camp nu este un proces foarte complex, acesta presupune o intrebare simpla de aritmetica la care persoana fizica trebuie sa raspunda introducand raspunsul in campul de text.

In spatele acestei intrebari simple pentru persoana fizica sta in spate cateva variabile si o functie JavaScript care fac acest lucru. In exemplul nostru voi folosi cateva variabile care vor selecta elementele din formular, o alta variabila ce va contine un numar intotdeauna diferit si inca o variabila ce va contine un string, reprezentand intrebarea pentru persoana fizica, plus numarul intotdeauna diferit declarat in variabila anterioara. La sfarsit vom declara o functie ce va rula in momentul cand este declansat evenimentul submit pe variabila ce are ca valoare formularul insusi si care va contine o structura conditionara if... else cu care vom compara valorile trimise de catre acel camp anti spam.

Codul pentru acest exemplu

Codul explicat

Prima linie din script reprezinta o functie care va returna si ne va ajuta sa evitam scrierea de mai multe ori a document.getElementById(). Urmatoarele declaratii sunt trei variabile cu care am selectat elementele HTML reprezentand formularul si elemente din interiorul formularului folosindu-ma de functia mai sus amintita. Variabila numar are ca valoare obiectul Math si atasat de acesta este metoda floor care ne va rotunji in jos valoarea aparuta in interiorul parantezelor. In interiorul parantezelor observam acelasi obiect Math de care de aceasta data este legat metoda random care ne va arata de fiecare data un numar diferit. Problema cu metoda random este ca ea nu ne va arata numere intregi, ci doar un numar cuprins intre zero inclusiv si maxim unu exclusiv, numar pe care metoda floor il va rotunji intotdeauna la cifra zero. Pentru a face ca cifra returnata sa fie un numar aleatoriu pana la 100, atunci va trebui sa inmultim cu 100.

Urmatoarea linie de cod este apelarea variabilei ce are ca valoare selectarea elementului unde va fi afisata intrebarea catre persoana fizica. Folosindu-ma de proprietatea innerHTML voi insera intrebarea catre utilizator si care va fi alcatuita dintr-un string intrerupta in doua locuri de variabila numar, reprezentand numarul aleatoriu din variabila mai sus explicata. In cele din urma, pe variabila ce are ca valoare selectarea formularului, voi declara si astepta sa fie declansat evenimentul submit, eveniment pe care voi rula o functie anonima si care va face comparatia intre valorile inserate de catre utilizator in campul de text si valoarea variabilei inmultita cu cifra 2. Pentru a putea face asta, observati ca m-am folosit de structura if... else pe care o intelegeti foarte bine. In exemplul vostru, la validarea ultimului camp din formular va trebui sa va ajustati acest script si cel mai important este ca a-ti invatat (daca nu stiati) cum se face validarea unui camp anti spam.