javascript form validation not working

Discussion in 'JavaScript' started by abcd, Mar 16, 2008.

  1. #1
    I have a form on my website that I'm trying to validate, I've tried many different methods for several hours, and I can't get it to work.

    The form has a 3 digit number that people have to enter and currently if they don't enter anything and just click submit it still forwards them to the next webpage. I would like to make mandatory that they have to enter a code.

    Any help would be greatly appreciated.

    I'm pasting the codes I think are important:

    Javascript code:

    <script type="text/javascript">
    <!--
    function MM_preloadImages() { //v3.0
    var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a.indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a;}}
    }

    function MM_swapImgRestore() { //v3.0
    var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a)&&x.oSrc;i++) x.src=x.oSrc;
    }

    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[n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
    }

    function MM_swapImage() { //v3.0
    var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
    if ((x=MM_findObj(a))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }

    function senditout() {
    document.form.submit();

    }
    function MM_callJS(jsStr) { //v2.0
    return eval(jsStr)
    }
    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);
    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>

    Form Code:

    <form name="form" id="form" method="post" action="http://xxxxx.com/forward.php">
    <input name="form" type="text" id="form" size="6" maxlength="3">

    Code for Submit button:

    <a href="#"><img src="images/1_01.jpg" alt="" width="228" height="70" id="Image1" onClick="MM_callJS('senditout();')" onMouseOver="MM_swapImage('Image1','','images/images/1_01.jpg',1)" onMouseOut="MM_swapImgRestore()"></a></td>


    Thanks!
     
    abcd, Mar 16, 2008 IP
  2. in2clearsky

    in2clearsky Peon

    Messages:
    121
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #2
    Doesn't go through all your code so i assume MM_validateForm is a function for form validation? If so, your code doesn't call it anywhere in submit section. All the submit code do is just submitting.
     
    in2clearsky, Mar 17, 2008 IP
  3. abcd

    abcd Peon

    Messages:
    330
    Likes Received:
    2
    Best Answers:
    0
    Trophy Points:
    0
    #3
    can you advise how I should revise the code? I didn't write the code, and I can't get in contact of the person designed the webpage.


    any help would be appreciated
     
    abcd, Mar 17, 2008 IP