Scripts work together in Firefox but not IE 7

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • rjdougan
    New Member
    • Feb 2008
    • 1

    #1

    Scripts work together in Firefox but not IE 7

    I am not a developer but need some help with scripts for a client.

    I have a script to handle form validation and one that handle mouseover on menu.

    The form validation script works fine by it self in both Firefox and IE. When the menu mouseover script is introduced the form validation only works in firefox not in IE.

    Here is the form validation script
    ----------------------------------

    Code:
    function verifyForm(form_id) {
    		var myForm = document.getElementById(form_id);
    		var errorMessage = '';
    		var logMessage = "";
    		var inputs = myForm.getElementsByTagName('input');
    		var selects = myForm.getElementsByTagName('select');
    		var textareas = myForm.getElementsByTagName('textarea');
    		var idx = 0;
    		logMessage += "Found " + inputs.length + " inputs\n";
    		logMessage += "Found " + selects.length + " selects\n";
    		logMessage += "Found " + textareas.length + " textareas\n";
    		
    		for(idx=0; idx<inputs.length ; idx++) {
    			if(inputs[idx].getAttribute('required') == 'required') {
    				logMessage += "found a required field: " + idx + " with value = " + inputs[idx].value  + "\n";
    				if(inputs[idx].value.length == 0) {
    					var myName = inputs[idx]['name'];
    					myName = myName.replace(/_/g, ' ');
    					errorMessage += "The field '" + myName + "' must not be empty.\n";
    				}
    			}
    			if(inputs[idx].getAttribute('required') == 'requiredemail') {
    							logMessage += "found a required field: " + idx + " with value = " + inputs[idx].value  + "\n";
    							if(inputs[idx].value.length == 0 || inputs[idx].value.indexOf('@') == -1) {
    									var myName = inputs[idx]['name'];
    									myName = myName.replace(/_/g, ' ');
    									errorMessage += "The field '" + myName + "' must not be empty or must contain a valid email address.\n";
    							}
    					}
    		}
    		
    		
    			
    		for(idx=0; idx<selects.length ; idx++) {
    			if(selects[idx].getAttribute('required') == 'required') {
    				logMessage += "found a required field: " + idx + " with value = " + selects[idx].selectedIndex + "\n";
    				if(selects[idx].selectedIndex == 0) {
    					var myName = selects[idx]['name'];
    					myName = myName.replace(/_/g, ' ');
    					errorMessage += "You must choose an option from the '" + myName + "' drop-down menu.\n";
    				}
    			}
    		}
    		
    		
    		for(idx=0; idx<textareas.length ; idx++) {
    			if(textareas[idx].getAttribute('required') == 'required') {
    				logMessage += "found a required field: " + idx + " with value = " + textareas[idx].value  + "\n";
    				if(textareas[idx].value.length == 0) {
    					var myName = textareas[idx]['name'];
    					myName = myName.replace(/_/g, ' ');
    					errorMessage += "The field '" + myName + "' must not be empty.\n";
    				}
    			}
    		}
    		
    		if(errorMessage !='') {
    			alert("The following errors were found:\n" + errorMessage);
    			return false;
    		} else {
    			//alert(logMessage + "\n\nErrormessage: " + errorMessage);
    			return true;
    		}
    	}
    -----------------------------------------------------

    Here is the menu mouseover script

    ---------------------------------------------------

    Code:
    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[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    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;
    }
    function MM_nbGroup(event, grpName) { //v6.0
    var i,img,nbArr,args=MM_nbGroup.arguments;
    if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
    img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
    if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
    nbArr[nbArr.length] = img;
    for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = img.MM_dn = args[i+1];
    nbArr[nbArr.length] = img;
    } }
    } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
    nbArr[nbArr.length] = img;
    }
    } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
    img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
    } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
    for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
    if (!img.MM_up) img.MM_up = img.src;
    img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
    nbArr[nbArr.length] = img;
    } }
    -----------------------------------------------
    Any help is appreciated given that the form verification works fine with the menu script tells me that the two don't play well together in IE.

    Thanks in advance,
  • acoder
    Recognized Expert MVP
    • Nov 2006
    • 16032

    #2
    Welcome to TSDN!

    So are there any errors?

    Comment

    Working...