Click to See Complete Forum and Search --> : Error: return statement, HELP!


impulse
01-24-2003, 09:29 AM
Below is my script. The error is coming from this portion of my script - return false

if(document.myForm.address.value==""){
alert("Please enter your address!")
document.myForm.address.focus()
return false


<script language="JavaScript" type="text/javascript">
<!--

function myValid(){
if(document.myForm.first_name.value==""){
alert("Please enter your first name!")
document.myForm.first_name.focus()
return false
}
if(document.myForm.last_name.value==""){
alert("Please enter your last name!")
document.myForm.last_name.focus()
return false
}
if(document.myForm.company.value==""){
alert("Please enter your company's name!")
document.myForm.company.focus()
return false
}
if(document.myForm.professional_title.value==""){
alert("Please enter your professional title!")
document.myForm.professional_title.focus()
return false
}

re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

if(re.test(myForm.emailAddress.value)){
return true
}
alert("Invalid email address!")
myForm.emailAddress.focus()
myForm.emailAddress.select()
return false
}
if(document.myForm.address.value==""){
alert("Please enter your address!")
document.myForm.address.focus()
return false
}
if(document.myForm.city.value==""){
alert("Please enter your city!")
document.myForm.city.focus()
return false
}
return true
}

//-->
</script>

Rick Bull
01-24-2003, 09:33 AM
I think it's this bit:

re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

if(re.test(myForm.emailAddress.value)){
return true
}
alert("Invalid email address!")
myForm.emailAddress.focus()
myForm.emailAddress.select()
return false
}

you missed the else bit:

re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/

if(re.test(myForm.emailAddress.value)){
return true
} else {
alert("Invalid email address!")
myForm.emailAddress.focus()
myForm.emailAddress.select()
return false
}

I find it helps me to indent blocks of code (between { and } with JavaScript), e.g. in this case you had missed a { so the next } was ending the function.

Charles
01-24-2003, 09:53 AM
Returning true at that point will keep the rest of the form validation from happening. Try instead:

if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(myForm.emailAddress.value)){
alert("Invalid email address!")
myForm.emailAddress.focus()
myForm.emailAddress.select()
return false
}