/    Sign up×
Community /Pin to ProfileBookmark

javascript onsubmit

Hi

i am trying to run two functions when a form is submitted, however im having problems, i was wondering if someone could help me?

one function checks the fields to make they have correct content in them (eg email, phone number etc) the other function acts as a captcha and says if the field equals 10 then submit.

Here is my javascript code in the head:

[code]
<script type=”text/JavaScript”>
<!–

function MM_validateForm() { //v4.0
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors=”,args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!=””) {
if (test.indexOf(‘isEmail’)!=-1) { p=val.indexOf(‘@’);
if (p<1 || p==(val.length-1)) errors+=’- ‘+nm+’ must contain an e-mail address.n’;
} else if (test!=’R’) { num = parseFloat(val);
if (isNaN(val)) errors+=’- ‘+nm+’ must contain a number.n’;
if (test.indexOf(‘inRange’) != -1) { p=test.indexOf(‘:’);
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+=’- ‘+nm+’ must contain a number between ‘+min+’ and ‘+max+’.n’;
} } } else if (test.charAt(0) == ‘R’) errors += ‘- ‘+nm+’ is required.n’; }
} if (errors) alert(‘The following error(s) occurred:n’+errors);
document.MM_returnValue = (errors == ”);
} }

//–>
</script>

<script language=”JavaScript” type=”text/javascript”>
<!–
function checkform ( form )
{
// see [url]http://www.thesitewizard.com/archive/validation.shtml[/url]
// for an explanation of this script and how to use it on your
// own website

// ** START **
if (form.captcha.value !== “10”) {
alert( “Please check answer.” );
form.email.focus();
return false ;
}
// ** END **
return true ;
}

function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
}

//–>
</script>
[/code]

this what i put in the form:

[code]
onsubmit=”MM_validateForm(‘name’,”,’R’,’email’,”,’RisEmail’,’comp’,”,’R’,’number’,”,’RisNum’,’message’,”,’R’) && checkform(this);”
[/code]

at present one function runs and then submits the form even if the other function is not satisfied.

can anyone help me?

thanks

to post a comment
JavaScript

5 Comments(s)

Copy linkTweet thisAlerts:
@toicontienMay 29.2008 — Should be a simple fix:
onsubmit="[B]return[/B] MM_validateForm('name','','R','email','','RisEmail','comp','','R','number','','RisNum','me ssage','','R') &amp;&amp; checkform(this);"
You are missing the "return" statement.
Copy linkTweet thisAlerts:
@kamesh192authorMay 30.2008 — Hi

thanks for the reply. i tried that and it doesnt work, you can see it at http://www.thremhallpark.co.uk/contact2.php. if you enter nothing in the box it prompts an error but then still submits the form.

ive read around and it seems the best way is to combine the functions, but i dont know how to do this as my javascript is not that good.

can anyone help me?

thanks
Copy linkTweet thisAlerts:
@Declan1991May 30.2008 — MM_validateForm() never returns a value, so it returns undefined. I don't know what that does, but having that return false should do the trick as far as I know.
Copy linkTweet thisAlerts:
@kamesh192authorMay 30.2008 — Hi

thanks for the reply, sorry for the novice question, but how do i do this?

thanks
Copy linkTweet thisAlerts:
@Declan1991May 30.2008 — Well if<i>
</i>function MM_validateForm() { return false;
if (document.getElementById){
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i&lt;(args.length-2); i+=3) { test=args[i+2]; val=document.getElementById(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p&lt;1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must contain a number.n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num&lt;min || max&lt;num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.n'; }
} if (errors) alert('The following error(s) occurred:n'+errors);
document.MM_returnValue = (errors == '');
} }
makes no difference, ignore my suggestions. However if that does make the form not submit, I'll try to alter the function for you.
×

Success!

Help @kamesh192 spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.25,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...