/* ------------------------------------------------------------------------- JavaScript Form Validator Version 2.0.2 Copyright 2003 JavaScript-coder.com. All rights reserved. You use this script in your Web pages, provided these opening credit lines are kept intact. The Form validation script is distributed free from JavaScript-Coder.com You may please add a link to JavaScript-Coder.com, making it easy for others to find this script. Checkout the Give a link and Get a link page: http://www.javascript-coder.com/links/how-to-link.php You may not reprint or redistribute this code without permission from JavaScript-Coder.com. JavaScript Coder It precisely codes what you imagine! Grab your copy here: http://www.javascript-coder.com/ ------------------------------------------------------------------------- */ function Validator(frmname) { this.formobj=document.forms[frmname]; if(!this.formobj) { alert("BUG: couldnot get Form object "+frmname); return; } if(this.formobj.onsubmit) { this.formobj.old_onsubmit = this.formobj.onsubmit; this.formobj.onsubmit=null; } else { this.formobj.old_onsubmit = null; } this.formobj.onsubmit=form_submit_handler; this.addValidation = add_validation; this.setAddnlValidationFunction=set_addnl_vfunction; this.clearAllValidations = clear_all_validations; } function getRadioValue(radioObject) { var value = ""; for (var i=0; i= 0) { command = strValidateStr.substring(0,epos); cmdvalue = strValidateStr.substr(epos+1); //alert(strValidateStr); } else { command = strValidateStr; } switch(command) { case "req": case "required": { if(eval(objValue.value.length) == 0) { if(!strError || strError.length ==0) { strError = objValue.name + " : Required Field"; }//if alert(strError); return false; }//if break; }//case required case "reqRadio": { if(objValue.value.length != 0 ){ vals=eval(cmdvalue); if(vals.find(objValue.value)){ return true; } else{ alert(strError); return false; } } else { alert(strError); return false; }//if break; }//requiredradio case "maxlength": case "maxlen": { if(eval(objValue.value.length) > eval(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name + " : "+cmdvalue+" characters maximum "; }//if alert(strError + "\n[Current length = " + objValue.value.length + " ]"); return false; }//if break; }//case maxlen case "minlength": case "minlen": { if(eval(objValue.value.length) < eval(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name + " : " + cmdvalue + " characters minimum "; }//if alert(strError + "\n[Current length = " + objValue.value.length + " ]"); return false; }//if break; }//case minlen case "exactlen": { if((eval(objValue.value.length) != eval(cmdvalue)) && (eval(objValue.value.length)!=0)) { if(!strError || strError.length ==0) { strError = objValue.name + " : " + cmdvalue + " characters require "; }//if alert(strError + "\n[Current length = " + objValue.value.length + " ]"); return false; }//if break; }//case minlen case "alpha+num": { var charpos = objValue.value.search("[0-9]"); if(objValue.value.length > 0 && charpos == -1) { if(!strError || strError.length ==0) { strError = objValue.name+": Field must contain both letters and numbers "; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if charpos = objValue.value.search("[A-Za-z]"); if(objValue.value.length > 0 && charpos == -1) { if(!strError || strError.length ==0) { strError = objValue.name+": Field must contain both letters and numbers "; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if break; }//case alphanumeric case "alnum": case "alphanumeric": { var charpos = objValue.value.search("[^A-Za-z0-9]"); if(objValue.value.length > 0 && charpos >= 0) { if(!strError || strError.length ==0) { strError = objValue.name+": Only alpha-numeric characters allowed "; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if break; }//case alphanumeric case "num": case "numeric": { var charpos = objValue.value.search("[^0-9]"); if(objValue.value.length > 0 && charpos >= 0) { if(!strError || strError.length ==0) { strError = objValue.name+": Only digits allowed "; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if break; }//numeric case "alphabetic": case "alpha": { var charpos = objValue.value.search("[^A-Za-z]"); if(objValue.value.length > 0 && charpos >= 0) { if(!strError || strError.length ==0) { strError = objValue.name+": Only alphabetic characters allowed "; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if break; }//alpha case "alnumhyphen": { var charpos = objValue.value.search("[^A-Za-z0-9\-_]"); if(objValue.value.length > 0 && charpos >= 0) { if(!strError || strError.length ==0) { strError = objValue.name+": characters allowed are A-Z,a-z,0-9,- and _"; }//if alert(strError + "\n [Error character position " + eval(charpos+1)+"]"); return false; }//if break; } case "email": { if(!validateEmailv2(objValue.value)) { if(!strError || strError.length ==0) { strError = objValue.name+": Enter a valid Email address "; }//if alert(strError); return false; }//if break; }//case email case "inArray": { a=eval(cmdvalue); rez=(inArray(objValue.value,a)); s=""; for(i=0;i0){ s=s+a[a.length]; } if(!rez){ if(!strError || strError.length ==0) { strError = objValue.name+": Should be among "+s; }//if alert(strError+"\n"+"Current value "+objValue.value); } return rez; break; } case "notInArray": { a=eval(cmdvalue); rez=!(inArray(objValue.value,a)); s=""; for(i=0;i0){ s=s+a[a.length-1]; } if(!rez){ if(!strError || strError.length ==0) { strError = objValue.name+": Should not be among "+s; }//if alert(strError+"\n"+"Current value "+objValue.value); } return rez; break; } case "lt": case "lessthan": { if(isNaN(objValue.value)) { alert(objValue.name+": Should be a number "); return false; }//if if(eval(objValue.value) >= eval(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name + " : value should be less than "+ cmdvalue; }//if alert(strError); return false; }//if break; }//case lessthan case "gt": case "greaterthan": { if(isNaN(objValue.value)) { alert(objValue.name+": Should be a number "); return false; }//if if(eval(objValue.value) <= eval(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name + " : value should be greater than "+ cmdvalue; }//if alert(strError); return false; }//if break; }//case greaterthan case "zipusa": { var re = new RegExp("^[0-9]{5}-[0-9]{4}$|^[0-9]{5}$"); if(objValue.value.match(re)) { return true; } else { alert("Only USA zip codes allowed"); return false; } break; }//zip USA or Canada case "zipusaca": { var re = new RegExp("^[0-9]{5}-[0-9]{4}$|^[0-9]{5}$|^[A-Z][0-9][A-Z][ ][0-9][A-Z][0-9]$"); if(objValue.value.match(re)) { return true; } else { alert("Only USA and Canadian zip codes allowed"); return false; } break; }//zip USA or Canada case "regexp": { if(objValue.value.length > 0) { if(!objValue.value.match(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name+": Invalid characters found "; }//if alert(strError); return false; }//if } break; }//case regexp case "dontselect": { if(objValue.selectedIndex == null) { alert("BUG: dontselect command for non-select Item"); return false; } if(objValue.selectedIndex == eval(cmdvalue)) { if(!strError || strError.length ==0) { strError = objValue.name+": Please Select one option "; }//if alert(strError); return false; } break; }//case dontselect }//switch return true; } /* Copyright 2003 JavaScript-coder.com. All rights reserved. */