Lara Croft
01-26-2006, 07:42 PM
Hi everyone.
I am using the following code to create a form validation process.
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_validateForm() { //v4.0
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=MM_findObj(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 be a valid e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must not contain spaces.\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 == '');
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>
This is the code that dictates the form email input box
<tr valign="top">
<td>Email Address </td>
<td><input name="email" type="text" id="email">
<font color="#FF0000"> *</font></td>
</tr>
This is the code for the phone # input box
<tr valign="top">
<td>Phone Number (no spaces) </td>
<td><input type="text" name="phone">
<font color="#FF0000">* </font> </td>
</tr>
<p><font color="#FF0000"><br>
* = Required Field</font> </p></td>
</tr>
</table>
Now - problem is that when the submit button is clicked - it will not accept a phone number with spaces in ( I WANT IT TO ) and secondly the email address part will only alert if the field is left blank. ( I WANT IT TO VALIDATE THE EMAIL ADDRESS BY WAY OF CHECKING THE CHARACHTERS USED WHILE DISALLOWING SPACES AND OTHER INVALID INPUTS and then to VERIFY BY WAY OF CHECKING GENUINE DOMAIN ETC ).
I have done a lot of research and tried altering the following lines as per examples given on tutorial topics but am not getting anywhere.
function MM_validateForm() { //v4.0
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=MM_findObj(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 be a valid e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
can anyone help please. :)
I am using the following code to create a form validation process.
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_validateForm() { //v4.0
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=MM_findObj(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 be a valid e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' must not contain spaces.\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 == '');
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//-->
</script>
This is the code that dictates the form email input box
<tr valign="top">
<td>Email Address </td>
<td><input name="email" type="text" id="email">
<font color="#FF0000"> *</font></td>
</tr>
This is the code for the phone # input box
<tr valign="top">
<td>Phone Number (no spaces) </td>
<td><input type="text" name="phone">
<font color="#FF0000">* </font> </td>
</tr>
<p><font color="#FF0000"><br>
* = Required Field</font> </p></td>
</tr>
</table>
Now - problem is that when the submit button is clicked - it will not accept a phone number with spaces in ( I WANT IT TO ) and secondly the email address part will only alert if the field is left blank. ( I WANT IT TO VALIDATE THE EMAIL ADDRESS BY WAY OF CHECKING THE CHARACHTERS USED WHILE DISALLOWING SPACES AND OTHER INVALID INPUTS and then to VERIFY BY WAY OF CHECKING GENUINE DOMAIN ETC ).
I have done a lot of research and tried altering the following lines as per examples given on tutorial topics but am not getting anywhere.
function MM_validateForm() { //v4.0
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=MM_findObj(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 be a valid e-mail address.\n';
} else if (test!='R') { num = parseFloat(val);
can anyone help please. :)