Forum Moderators: open

Message Too Old, No Replies

Help with validation needed!

         

shade

10:27 am on Mar 16, 2004 (gmt 0)



Could anyone help me with this code?
I want to validate the fields and then move to the confirmation page only if all fields are validated. Just now the code informs that fields are blank but then goes to next page anyway.
What am i doing wrong?
Thanks for anyhelp you can give

function checkForm(myForm)
{
var errorMessage = "Please complete the following fields: "+"\n"+"\n";
var result = true;
var name = myForm.name.value;
var email = myForm.email.value;
var password = myForm.password.value;
var passwordCheck = myForm.passwordCheck.value;
var at_pos;
var dot_pos;

if ((name =="") ¦¦ (email =="") ¦¦ (password =="") ¦¦ (passwordCheck ==""))
{
if (name=="")
{
errorMessage +=("Name" +"\n");
}
if (email=="")
{
errorMessage +=("Email" +"\n");
}
if (password=="")
{
errorMessage +=("Password"+"\n");
}
if (passwordCheck=="")
{
errorMessage +=("C password"+"\n");
}
alert(errorMessage)
result = false
}
else
{
if (email!="")
{
at_pos = email.indexOf("@")&& email.indexOf(".")
}
else
{
at_pos = -1
}
}
if (at_pos < 0)
{
alert("Email address is not correct")
result = false
}

if (myForm.password.value!=""&& myForm.passwordCheck.value!=""
&& myForm.password.value!= myForm.passwordCheck.value)
{
alert("Password is not the same.");
result=false
}

return result
}
</script>
</HEAD>
<form name="myForm" method = "post" onSubmit="checkForm(this)" action = "confirmation.php">
Enter name:
<input type = "Text" name = "name" /><br/>
Enter email address:
<input type = "Text" name = "email" /><br/>
Enter password:
<input type = "Password" name = "password" /><br/>
Confirm password:
<input type = "Password" name = "passwordCheck" /><br/><br/>
<input type = "Submit" value = "Submit"
</form>

Alternative Future

11:28 am on Mar 16, 2004 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



Hello and Welcome to WebmasterWorld shade,

I have added one other function to the bottom of your script that validates that result is ok before submitting your form
if(result!=false){ can also be written like if(result) as this checks that the value of results is true whereas if(!(result)) would check for a false value. Also i have removed the action from your form action as this is what was overriding your checkForm.

function checkForm(myForm){
var errorMessage = "Please complete the following fields: "+"\n"+"\n";
var result = true;
var name = myForm.name.value;
var email = myForm.email.value;
var password = myForm.password.value;
var passwordCheck = myForm.passwordCheck.value;
var at_pos;
var dot_pos;

if (name=="" ¦¦ email=="" ¦¦ password=="" ¦¦ passwordCheck==""){
if (name==""){
errorMessage +=("Name" +"\n");
}
if (email==""){
errorMessage +=("Email" +"\n");
}
if (password==""){
errorMessage +=("Password"+"\n");
}
if (passwordCheck==""){
errorMessage +=("C password"+"\n");
}
alert(errorMessage);
result = false
}else {
if (email!=""){
at_pos = email.indexOf("@")&& email.indexOf(".")
}else{
at_pos = -1
}
}
if (at_pos < 0){
alert("Email address is not correct");
result = false
}

if (myForm.password.value!=""&& myForm.passwordCheck.value!="" && myForm.password.value!= myForm.passwordCheck.value) {
alert("Password is not the same.");
result=false
}
if(result!=false){
myForm.action = 'confirmation.php';
}
}

<form name="myForm" method = "post" onSubmit="checkForm(this)">

HTH,

-George