22. april 2006 - 17:31Der er
4 kommentarer og 1 løsning
onsubmit - what is broken?
<SCRIPT>
//global variable for error flag var errfound = false; //function to validate by length function ValidLength(item, len) { return (item.length >= len); }
// display an error alert function error(elem, text) { // abort if we already found an error if (errfound) return; window.alert(text); elem.select(); elem.focus(); errfound = true; }
// main validation function function Validate() { errfound = false; if (!ValidLength(document.brugerform.navn.value,1)) error(document.brugerform.navn,"Ups, du mangler at skrive dit navn!"); if (!ValidLength(document.brugerform.email.value,1)) error(document.brugerform.email,"Ups, du mangler at skrive din e-mail adresse!"); if (!ValidLength(document.brugerform.password.value,1)) error(document.brugerform.password,"Ups, du mangler at skrive din adgangskode!");
return !errfound; /* true if there are no errors */ }
Jeg har i årevis brugt ovenstående til at påtvinge brugere at udfylde bestemte felter i en formular. Men det er pludseligt holdt op med at virke. Dvs. det virker - men meget ustabilt. Ca. halvdelen af forsøgene reagerer det korrekt, og man får bare ikke lov til at submitte før felterne er udfyldt. De andre gange kommer den fint med advarslen, men sender alligevel formularen.
//global variable for error flag var errfound = false; //function to validate by length function ValidLength(item, len) { return (item.length >= len); }
// display an error alert function error(elem, text) { // abort if we already found an error if (errfound) return; window.alert(text); elem.select(); elem.focus(); errfound = true; }
// main validation function function Validate(frm) { errfound = false; if (!ValidLength(frm.navn.value,1)) error(frm.navn,"Ups, du mangler at skrive dit navn!"); if (!ValidLength(frm.email.value,1)) error(frm.email,"Ups, du mangler at skrive din e-mail adresse!"); if (!ValidLength(frm.password.value,1)) error(frm.password,"Ups, du mangler at skrive din adgangskode!");
return !errfound; /* true if there are no errors */ }
Mistanken går på at nogle browsere måske ikke kan håndtere den måde at referere til en formular i et dokument og ved at sende en reference til form-elementet med til valideringsrutinen, burde du komme over denne fejlmulighed.
Det er som sagt bare et skud i tågen, for du nævner ikke noget om i hvilke situationer problemet opstår :)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.