MMeleaMedlem sedan juli 20033 147 inlägg Frågan#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!
MMeleaMedlem sedan juli 20033 147 inlägg 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;
}