bazzo Skrevet 27. januar 2005 Del Skrevet 27. januar 2005 Jeg har alltid brukt dette scriptet når jeg skal poste en form til et nytt vindu med definert størrelse. <form enctype="multipart/form-data" action="data.php" method="POST" target="window" onsubmit="window.open('about:blank','window','width=1024','height=600')"> Men det krasjer med et annet valideringsscript jeg bruker til formen. Vinduet åpner i definert størrelse når jeg fjerner dette scriptet. <script language="JavaScript" type="text/javascript">var frmvalidator = new Validator("data"); // Validering for utfylling av template form frmvalidator.addValidation("head","req","Vennligst legg inn et navn på visningen"); frmvalidator.addValidation("interval","req","Vennligst legg inn antall sekunder visningen skal vises"); frmvalidator.addValidation("interval","numeric"); </script> Noen som kan se hva problemet er ? Her er .js filen jeg includerer i header. 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 set_addnl_vfunction(functionname) { this.formobj.addnlvalidation = functionname; } function clear_all_validations() { for(var itr=0;itr < this.formobj.elements.length;itr++) { this.formobj.elements[itr].validationset = null; } } function form_submit_handler() { for(var itr=0;itr < this.elements.length;itr++) { if(this.elements[itr].validationset && !this.elements[itr].validationset.validate()) { return false; } } if(this.addnlvalidation) { str =" var ret = "+this.addnlvalidation+"()"; eval(str); if(!ret) return ret; } return true; } function add_validation(itemname,descriptor,errstr) { if(!this.formobj) { alert("BUG: the form object is not set properly"); return; }//if var itemobj = this.formobj[itemname]; if(!itemobj) { alert("BUG: Couldnot get the input object named: "+itemname); return; } if(!itemobj.validationset) { itemobj.validationset = new ValidationSet(itemobj); } itemobj.validationset.add(descriptor,errstr); } function ValidationDesc(inputitem,desc,error) { this.desc=desc; this.error=error; this.itemobj = inputitem; this.validate=vdesc_validate; } function vdesc_validate() { if(!V2validateData(this.desc,this.itemobj,this.error)) { this.itemobj.focus(); return false; } return true; } function ValidationSet(inputitem) { this.vSet=new Array(); this.add= add_validationdesc; this.validate= vset_validate; this.itemobj = inputitem; } function add_validationdesc(desc,error) { this.vSet[this.vSet.length]= new ValidationDesc(this.itemobj,desc,error); } function vset_validate() { for(var itr=0;itr<this.vSet.length;itr++) { if(!this.vSet[itr].validate()) { return false; } } return true; } function validateEmailv2(email) { // a very simple email validation checking. // you can add more complex email checking if it helps if(email.length <= 0) { return true; } var splitted = email.match("^(.+)@(.+)$"); if(splitted == null) return false; if(splitted[1] != null ) { var regexp_user=/^\"?[\w-_\.]*\"?$/; if(splitted[1].match(regexp_user) == null) return false; } if(splitted[2] != null) { var regexp_domain=/^[\w-\.]*\.[A-Za-z]{2,4}$/; if(splitted[2].match(regexp_domain) == null) { var regexp_ip =/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/; if(splitted[2].match(regexp_ip) == null) return false; }// if return true; } return false; } function V2validateData(strValidateStr,objValue,strError) { var epos = strValidateStr.search("="); var command = ""; var cmdvalue = ""; if(epos >= 0) { command = strValidateStr.substring(0,epos); cmdvalue = strValidateStr.substr(epos+1); } 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 "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[Nåværende lengde = " + 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[Nåværende lengde = " + objValue.value.length + " ]"); return false; }//if break; }//case minlen 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+": Må inneholde tall "; }//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+": Skriv inn en gyldig e-post adresse "; }//if alert(strError); return false; }//if break; }//case email case "lt": case "lessthan": { if(isNaN(objValue.value)) { alert(objValue.name+": Må være et nummer "); 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+": Må være et nummer "); 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 "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+": Vennligst velg et av valgene "; }//if alert(strError); return false; } break; }//case dontselect }//switch return true; } Lenke til kommentar
Dahl Skrevet 27. januar 2005 Del Skrevet 27. januar 2005 Jeg orker ikke å feilsøke så enormt mange linjer med kode, og tviler på at så veldig mange andre gidder det heller... Test skriptet i Mozilla Firefox, der får du en bedre forklaring på hva som er galt med skriptet enn i f. eks. IE. Lenke til kommentar
bazzo Skrevet 27. januar 2005 Forfatter Del Skrevet 27. januar 2005 Problemet er at det ikke kommer opp noen feilmeldign, vinduet åpnes bare ikke i den størrelsen jeg har definert, den nye siden åpnes i ett helt vanlig explorer vindu Lenke til kommentar
DevN Skrevet 30. januar 2005 Del Skrevet 30. januar 2005 Hva hvis du putter scriptet (lager en funksjon) i hodet (<head></head>), og kaller den vha "<form action=...>"? Nå har ikke jeg heller feilsøkt i scriptet, slik har jeg rett og slett ikke tålmodighet til. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå