webForumDet fria alternativet

Validering, blir tokig

1 svar · 377 visningar · startad av Melea

MeleaMedlem sedan juli 20033 147 inlägg
#1

Har suttit och stirrat på den här koden i en timma nu. Är ingen höjdare på Javascript men i mina ögon borde det här verkligen fungera.

function validate(){
	
	var name, county, year_of_birth, gender, email, password;
	var errorBox;
	var isValid;
	
	name = document.getElementById('name');
	county = document.getElementById('county');
	year_of_birth = document.getElementById('year_of_birth');
	gender = document.getElementById('gender');
	email = document.getElementById('email');
	password = document.getElementById('password');
	
	errorBox = document.getElementById('errorBox');
	
	isValid = true;
	
	if (name.value.length < 2 && isValid) {
		errorBox.style.display = 'inline';
		errorBox.innerHTML = 'Du måste fylla i ett namn.'; 
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	if (isNan(county) && isValid) {
		errorBox.innerHTML = 'Du måste ange ett län.'; 
		errorBox.style.display = 'inline';
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	if (isNan(year_of_birth) && isValid) {
		errorBox.innerHTML = 'Du ange ett födelseår.';
		errorBox.style.display = 'inline';
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	if (isNan(gender) && isValid) {
		errorBox.innerHTML = 'Du måste ange kön.';
		errorBox.style.display = 'inline';
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	if (email.value.length < 5 && isValid) {
		errorBox.innerHTML = 'Du måste ange en epost-adress.';
		errorBox.style.display = 'inline';
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	if (password.value.length < 5 && isValid) {
		errorBox.innerHTML = 'Du måste ange ett lösenord.';
		errorBox.style.display = 'inline';
		isValid = false; 
	} else {
		errorBox.style.display = 'none';
		errorBox.innerHTML = ''; 
	}
	
	return isValid;
	     
}
<div id="errorBox" style="display: none;"></div>

<form action="index.php" method="post" onsubmit="return validate();">
<input type="text" name="name" id="name" class="TextBox" tabindex="1" />
...
</form>

Var kan felet ligga? Nu submitar den formuläret, trots att den BORDE returnera false när name inte har något värde.

Tusen tack på förhand!

MeleaMedlem sedan juli 20033 147 inlägg
#2

Alright, frågan är varför jag hade med } else {. Nu funkar det. :)

function validate(){
	
	var name, county, year_of_birth, gender, email, password;
	var errorBox;
	var isValid;
	
	name = document.getElementById('name');
	county = document.getElementById('county');
	year_of_birth = document.getElementById('year_of_birth');
	gender = document.getElementById('gender');
	email = document.getElementById('email');
	password = document.getElementById('password');
	
	errorBox = document.getElementById('errorBox');
	
	isValid = true;
	
	if (name.value.length < 2 && isValid) {
		errorBox.innerHTML = 'Du måste fylla i ett namn.'; 
		errorBox.style.display = 'inline';
		isValid = false;
	}
	
	if (county.value == 0 && isValid) {
		errorBox.innerHTML = 'Du måste ange ett län.'; 
		errorBox.style.display = 'inline';
		isValid = false; 
	}
	
	if (year_of_birth.value == 0 && isValid) {
		errorBox.innerHTML = 'Du ange ett födelseår.';
		errorBox.style.display = 'inline';
		isValid = false; 
	}
	
	if (gender.value == 0 && isValid) {
		errorBox.innerHTML = 'Du måste ange kön.';
		errorBox.style.display = 'inline';
		isValid = false; 
	}
	
	if (email.value.length < 5 && isValid) {
		errorBox.innerHTML = 'Du måste ange en epost-adress.';
		errorBox.style.display = 'inline';
		isValid = false; 
	}
	
	if (password.value.length < 5 && isValid) {
		errorBox.innerHTML = 'Lösenordet måste vara minst 5 tecken långt.';
		errorBox.style.display = 'inline';
		isValid = false; 
	}
	
	return isValid;
	     
}
121 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)