14. januar 2004 - 11:54Der er
4 kommentarer og 2 løsninger
Validering af postnummer
Hej Alle!
Jeg har brug for at validere et postnummerfelt når der trykkes submit på en form. Det tal der indtastes skal være i følgende intervaller:
0900-2970 3450-3500
Altså skal man have vist en messagebox hvis ikke postnummeret er i et af de to intervaller. Hvis ikke man indtaster noget skal der komme en anden messagebox op som fortæller at feltet skal udfyldes. Det ville ligeledes være rart hvis man samtidig kunne validere de andre felter i formen for om de er udfyldt eller ej.
Det skal lige siges at jeg ikke kan kode javascript, så jeg kan kun bruge et svar hvor der er kode med :-)
Her er et script jeg lavede for noget tid siden.. den checker om der er noget i de ønskede felter. Jeg har modificeret den, så den checker om det indtastede postnummer lægger mellem 0900-2970 og 3450-3500. Hvis den ikke gør det, kommer en messagebox frem.
Foruden det, vil der komme noget tekst, der indformerer brugeren at alle felter markeret med * skal udfyldes. Formen er bare i eksempel. Det eneste du sådan set skal gøre, er at rette formen til, og så lige rette:
// Ret navnene på de felter der *SKAL* udfyldes her: var skal_udfyldes = new Array("fornavn", "efternavn", "adresse", "postnr");
Jeg håber at det er noget du kan bruge.
Selve scriptet:
<script text="text/JavaScript"> <!-- /* -------------------------------------------- Script til validering af felter.. Af: theSurfer Dato & Tid: 23/12-2003 23:41:54 Email: thesurfer underscore exp at yahoo.com -------------------------------------------- */
function validate(f) { var ok = "ja";
// Ret navnene på de felter der *SKAL* udfyldes her: var skal_udfyldes = new Array("fornavn", "efternavn", "adresse", "postnr");
el = f.elements; for(var i=0;i<el.length - 1;i++){ for (var a=0; a < skal_udfyldes.length; a++) { if ( (el[i].name == skal_udfyldes[a]) && (el[i].value.length == 0) && (el[i].type == "text") ) { ok = "nej"; } } }
var postnr = f.postnr.value; if ( (postnr < 0900) || (postnr > 3500) || ( (postnr > 2970) && (postnr < 3450) ) ) { alert('Postnummeret er forkert!\nDet skal være mellem 0900-2970 eller 3450-3500!'); }
if (ok == "nej") { document.getElementById("msg").innerHTML = " Du skal udfylde alle felter markeret med * !"; return false; } else { // alt er OK! return true; }
Hej Her er et lidt primitivt script, som du kan indsætte i det html.
<html> <head> <script language="javascript"> function Valider() {
var Altok="ja";
if (document.all.postnr.value=="") { alert (' Du har ikke indtastet et Postnr'); } else { if (document.all.postnr.value < 3000) { if (document.all.postnr.value < 900 || document.all.postnr.value > 2970) Altok="Nej"
Her er en bedre udgave af mit script.. den skriver hvilke felter det er der mangler:
<script text="text/JavaScript"> <!-- /* -------------------------------------------- Script til validering af felter.. Af: theSurfer Dato & Tid: 23/12-2003 23:41:54 Redigeret af theSurfer: 07/01-2004 20:15:21 Email: thesurfer underscore exp at yahoo.com -------------------------------------------- */
function validate(f) { var ok = "ja"; var mangler = "";
// Ret navnene på de felter der *SKAL* udfyldes her: var skal_udfyldes = new Array("fornavn", "efternavn", "adresse", "postnr");
el = f.elements; for(var i=0;i<el.length - 1;i++){ for (var a=0; a < skal_udfyldes.length; a++) { if ( (el[i].name == skal_udfyldes[a]) && (el[i].value.length == 0) && (el[i].type == "text") ) { mangler += "- " + skal_udfyldes[a - 1] + "<br>"; ok = "nej"; } } }
var postnr = f.postnr.value; if ( (postnr < 0900) || (postnr > 3500) || ( (postnr > 2970) && (postnr < 3450) ) ) { alert('Postnummeret er forkert!\nDet skal være mellem 0900-2970 eller 3450-3500!'); mangler += "- Postnummer<br>"; }
if (mangler != "") { mangler = mangler.substring(0, mangler.length - 4); // fjern det sidste "<br>", 4 = længden af "<br>" mangler = "Du mangler at udfylde følgende felter:<br>" + mangler; document.getElementById("msg").innerHTML = mangler; //" <b>Du skal svare på alle spørgsmål!</b>"; return false; } else { // alt er OK! return true; }
sennels> Jeg tror at det er en dårlig ide at bruge "document.all". Brug hellere document.FORMNAVN.posrnr.value eller document.forms['0'].postnr.value (0 er form nummeret).
Jeg kan se at du overhovedet ikke bruger et <form>-tag.
Hvordan har du tænkt dig at submitte data uden en form?
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.