Continuare verificare
Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
-
claUdiu
- Mesaje:313
Continuare verificare
Buna, am si eu o problema cu acest script:
Cod: Selectaţi tot
<script type="Text/javascript">
function Verifica(){
var Nume = document.getElementById('name');
var Email = document.getElementById('email');
var Post = document.getElementById('post');
if(Nume.value.length <= 3){
document.getElementById('erroareNume').innerHTML = 'Numele trebuie sa fie mai mult de 4 caractere';
return false;
}else if(Nume.value.length >= 20){
document.getElementById('erroareNume').innerHTML = 'Numele trebuie sa fie mai mic de 20 de caractere';
return false;
}else if(Nume.value.length > 3){
document.getElementById('erroareNume').innerHTML = '';
return false;
}
if(Email.value.length < 5){
document.getElementById('erroareEmail').innerHTML = 'Emailul trebuie sa fie mai mare de 5 caractere!';
return false;
}
}
</script>
<form action="post_comm.php" method="POST" onSubmit = "return Verifica()">
<div id="erroareNume"></div>
<br/>
<div id="erroareEmail"></div>
<br/>
Nume: <input type="text" name="name" id="name"/>
Email: <input type="email" name="email" id="email"/>
<br/>
Post:<br/>
<textarea cools="10" rows="5" id="post" name="post"/></textarea>
<Br/><br/>
<input type="submit" value="Trimite"/> <input type="reset" value="Sterge"/>
</form>
Ideea este ca verifica bine la campul Nume, dar cand totul este perfect (adica > 3 si < 20) se opreste aici si nu mai verifica si pentru campul Email...
P.S: Daca scto linia:
Cod: Selectaţi tot
else if(Nume.value.length > 3){
document.getElementById('erroareNume').innerHTML = '';
return false;
}
o sa mearga perfect.... Care ar putea fi cauza? Ms mult.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?
MarPlo
Mesaje:4343
Problema e de la
return. Instructiunea return returneaza rezultatul si opreste executia codului dupa ea.
Daca vrei sa continue verificarea si dupa prima eroare, trebuie return adaugat la urma.
Vezi cum e in exemplu urmator:
Cod: Selectaţi tot
<script type="Text/javascript"><!--
var regx_mail = /^([a-zA-Z0-9]+[a-zA-Z0-9._%-]*@([a-zA-Z0-9-]+\.)+[a-zA-Z]{2,4})$/; // RegExp pt e-mail
function Verifica(){
var Nume = document.getElementById('name');
var Email = document.getElementById('email');
var Post = document.getElementById('post');
// sterge notificari de eroare
document.getElementById('erroareNume').innerHTML = '';
document.getElementById('erroareEmail').innerHTML = '';
var re = true; // variabila returnata de functie (setata False la eroare)
if(Nume.value.length <= 3){
document.getElementById('erroareNume').innerHTML = 'Numele trebuie sa fie mai mult de 4 caractere';
re = false;
}
else if(Nume.value.length >= 20){
document.getElementById('erroareNume').innerHTML = 'Numele trebuie sa fie mai mic de 20 de caractere';
re = false;
}
if(Email.value.search(regx_mail) == -1){
document.getElementById('erroareEmail').innerHTML = 'Adaugati o adresa corecta de e-mail!';
re = false;
}
return re;
}
--></script>
<form action="post_comm.php" method="post" onSubmit = "return Verifica();">
<div id="erroareNume"></div><br/>
<div id="erroareEmail"></div><br/>
Nume: <input type="text" name="name" id="name"/>
Email: <input type="email" name="email" id="email"/><br/>
Post:<br/>
<textarea cols="10" rows="5" id="post" name="post"/></textarea><br/><br/>
<input type="submit" value="Trimite"/> <input type="reset" value="Sterge"/>
</form>
claUdiu
Mesaje:313
Multumesc mult, MarPlo! Merge.
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?