var tries = 0; function validateForm ( form ) { var retval = true; // be optimistic!! var silent = false; for ( var e=0; e < form.elements.length; e++ ) { var el = form.elements[e]; var errname = el.name + "error"; if (el.type != 'radio' && el.value != '') { var ndx = el.value.search(/= 0) { retval=false; silent=true; } } if (el.name=='title'||el.name=='state'|| el.name=='zipcode'||el.name=='fax'|| el.name=='questions'||el.name=='submit'|| el.name=='reset') { // ok if empty or anything else // but reject junk in non empty fields if (el.name=='fax' && el.value != '') { var ndx = el.value.search(/[^0-9-.\s()+]/); if (ndx >= 0) { retval=false; silent=true; } // international... means the rest could be // alphanumeric, includin extended latin/ascii set, so... } } else if ( el.type == 'radio' ) { var group = form [el.name]; var checked = false; if (!group.length) checked = el.checked; else for ( var r = 0; r < group.length; r ++ ) if ( ( checked = group [ r ].checked ) ) break; if ( !checked ) { var output = "Please choose an option!"; document.getElementById(errname).innerHTML=output; retval = false; } else { document.getElementById(errname).innerHTML=''; } } else if ( el.value == '' ) { var output = "Please fill in required field!"; document.getElementById(errname).innerHTML=output; retval = false; } else { //alert(el.name + " with value " + el.value); document.getElementById(errname).innerHTML=''; if (el.name=='email') { var ndx1 = el.value.search(/^([\w.-])+@([\w])+\./); var ndx2 = el.value.search(/\.([a-z])+$/); if (ndx1 < 0 || ndx2 < 0) { retval=false; silent=true; } } /* nope...no can do...people put in things like "no phone" or even "xxxxx or xxxxxx" augh! if (el.name=='phone') { var ndx = el.value.search(/[^0-9-.\s()+]/); if (ndx >= 0) { retval=false; silent=true; } } */ if (el.name=='firstname' || el.name=='lastname' || el.name=='state' || el.name=='country') { var ndx = el.value.search(/\d/); if (ndx > 0) { retval=false; silent=true; } } } } document.getElementById('generalerror').innerHTML=''; tries++; if (tries >= 3) { //alert("too many failures"); document.getElementById('generalerror').innerHTML= "\n"; return true; } if (retval===false) { if (silent===false) { document.getElementById('generalerror').innerHTML= "Please go back and fill in required field(s)!"; } return false; } else { return true; } }