Forum > Klientspråk > JavaScript
Behöver lite hjälp på detta script nedan.
Vill alltså ha validation på email och password.
Såhär ser själva java ut.
<script type="text/javascript">
function checkWholeForm(theForm) {
var why = "";
why += checkEmail(theForm.email.value);
why += checkPassword(theForm.password.value);
why += isEmpty(theForm.notempty.value);
for (i=0, n=theForm.radios.length; i<n; i++) {
if (theForm.radios[i].checked) {
var checkvalue = theForm.radios[i].value;
break;
}
}
why += checkRadio(checkvalue);
why += checkDropdown(theForm.choose.selectedIndex);
if (why != "") {
alert(why);
return false;
}
return true;
}
function checkPassword (strng) {
var error = "";
if (strng == "") {
error = "You didn't enter a password.
";
}
var illegalChars = /[\W_]/; // allow only letters and numbers
if ((strng.length < 6) || (strng.length > 8)) {
error = "The password is the wrong length.
";
}
else if (illegalChars.test(strng)) {
error = "The password contains illegal characters.
";
}
else if (!((strng.search(/[a-z]+/) > -1)
&& (strng.search(/[A-Z]+/) > -1)
&& (strng.search(/[0-9]+/) > -1))) {
error = "The password must contain at least one
uppercase letter, one lowercase letter,
and one numeral.
";
}
var emailFilter=/^.+@.+\..{2,3,4,6}$/;
if (!(emailFilter.test(strng))) {
error = "Please enter a valid email address.
";
}
var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
if (strng.match(illegalChars)) {
error = "The email address contains illegal characters.
";
}
</script>
Och själva form i html.
<form name="myForm" onsubmit="return validate_form(theForm);" method="post" action="editup.php">
<p>Epostadress<br />
<input type="text" name="email" value="<?php echo $info['email']; ?>"/><br />
<p>Lösenord<br />
<input type="password" name="pass" value=""/><br />
<p>Upprepa lösenord<br />
<input type="password" name="pass2" value=""/><br />
<input type='submit' value='Uppdatera användare' /></div><br /></p>
</form>
Vad gör jag för fel?
1. Vad händer?
2. Vad händer inte?
Det som händer, händer inte så att säga.:P
Händer inget? Det är ju två saker som kan "Inte hända", vad är det som görs?
1. Postas innehållet?
2. Den postar inte men validera fel?
Ser ju ut att din funktion inte är färdig: checkPassword retunera inget och den avslutas inte heller.
Sen ser det ut som att du försöker lägga in all din "check" i en och samma metod (checkPassword) var är alla andra metoder:
checkEmail
isEmpty
checkRadio
checkDropdown
?
Kanske bara är jag som har missat något men jag ser heller ingen funktion som heter validate_form? Viktigt att komma ihåg är också att du måste validera datan med PHP även fast du validerar den med JavaScript.
Det är rätt Padchi ;) finns inte en metod som heter validate_form, så det är inte lätt att felsöka alls.