Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Når jeg står i samme situation, altså at skulle have en formular valideret, benytter jeg mig oftest af følgende løsning.
<form> */ noget form indhold */ </form>
under denne form sætter jeg så en knap, ikke en 'submit' men blot en knap som aktivere et javascript som validere de forskellige felter. Hvis scriptet så opdager at et felt ikke er udfyldt tilfredstillende synliggøres en fejlmeddelelse og det aktuelle felt i formularen får focus. Hvis formularen kan godkendes af scriptet aktivere scriptet afsendelsen af formen.
Som oftest sender jeg form's til et php script, og det er vist også det du bokser med for øjeblikket :-). I php scriptet laver jeg så igen en validering af de indtastede oplysninger. Hvis der opstår problemer med valideringen i php, og jeg ellers har lavet mit valideringsarbejde godt nok betyder det at nogen har forsøgt at omgå mit javascript og derfor sikkert er ude i et mindre venligt ærinde. Derfor sender php blot en location.href med formen således at brugeren kan starte forfra med indtastningerne men denne gang med et opdateret javascript.
Hvis brugeren ikke er ude i et uvenligt ærinde, så vil scriptet sørge for at formen ikke bliver afsendt til serveren før den opfylder mine betingelser. Derved mindsker jeg server belastning og brugeren skal ikke downloade siden flere gange før den sendes.
Det jeg prøver at sige er at det sikkert kan lade sig gøre at åbne et ekstra vindue, men det er IMO langt fra den bedste løsning, bare tænk på at langt de fleste browsere idag slet ikke viser popup's men blot viser en advarsel om at en popup er blevet undertrykt.....som alle derefter ignorer.
Jeg prøvede at give dig værktøjerne til et sådan script i et andet spørgsmål. Lad mig høre hvis du vil prøve denne vej istedet så skal jeg forsøge at hjælpe dig igang hvis det er nødvendigt.
2. Validerings-scripts findes i mylliarder, både på eksperten (jeg tror personligt, jeg har skrevet dem i tusindvis !-) og mange andre steder, og standard-funktionen bør være, at der vises en fejlmeddelelse (f.eks. en alert) og blokeres for afsendelse !o]
formular ---> php validering (bruger tjekker i browser vindue om idntastninger er korrekt, klikker ok ---> sender derme oplysninger til min sekretær og dernæst til egen mail.!
if(uName_i=="" || uName_i.length>30 || uName_i.indexOf('/')>-1) { alert("Der er noget galt i navnet !") document.getElementById('err_navn').style.display='block'; form_err=true; }
<span id='err_navn' style='display: none;'>Der er noget galt i navnet !</span> <span id='err_efter' style='display: none;'>Der er noget galt i efternavnet !</span>
</body> </html>
Jeg sender lige op med det samme så må forklaring komme om lidt.
Og på den anden side kan du også lige kigge koden igennem og så spørge til indholdet for det er lige gået op for mig at det er temmelig omfangsrigt at skulle forklare alle elementerne.
Men læg bl.a. mærke til at der ikke er nogen submit knap men istedet er en knap som aktivere funktionen oValidate. Hvis funktionen finder indholdet i formen i orden så sender den formen via document.getElementsById('oForm').submit();
Funktionen 'kigger' i formen via to forskellige metoder (i demonstrationens navn) den ene er documents.getElementById() som kræver at du definere attributten 'ID' på <input> tag'sne.
Den anden er document.getElementsByName() som er en lidt anden metode som 'kigger' i formen via 'NAME' attributten.
Derudover er der vist to metoder til at advisere brugeren om at der er 'fejl' i formen. Den ene er et lille vindue som aktiveres via alert(), den anden er beskeder på skærmen som 'tændes' og 'slukkes' men style.display (Som virker både i FF og IE ... he he) Undskyld det var bare en intern hentydning.
Men kig på det og prøv at strikke noget sammen selv i din form og så tager vi den derfra.
-- har du et SSL-certifikat på din server, for det er en slags bedrageri, at lokke folk til at sende fortrolige oplysninger over åbne forbindelser, og det kræver iøvrigt, såvidt jeg ved, Registertilsynets eksplicitte tilladelse at registrere cpr-numre !-)
>>johan.o
-- din valideringsmetode er en afart af den, det ofte, med god grund -- også i dette tilfælde, udskældte site html.dk promoverer ...
-- normalt er det rent tåbeligt at placere en knap udenfor formen, for der er ikke den fjerneste grund til, at den ikke er inkluderet i formen, og handlinger, der forekommer på form-elementer inde i en form giver direkte adgang til formen, så man sparer en af de vedligeholdelsesting, som kan være en pine i nakken ...
-- desuden indeholder et form-tag en helt unik event, som kan bruges til at blokere afsendelse af formen, og på den måde kan man direkte udføre, hvad man intenderer !-)
-- metodikken, du benytter, er meget velegnet til de tilfælde, hvor man vil opsamle een fejlmeddelelse, som omfatter alle fejl, og ikke vil komme med fejl en ad gangen, for med nogle formularer er det ikke helt indlysende, hvorfor man risikerer at få adskillige fejlmeddelelser inden man endelig kan sende ...
-- en standard-validering vil f.eks. se således ud:
<script type="text/javascript"> function valider(f){ if(f.navn.value == "" || f.navn.value.length > 30){ alert("Fejl i navnet"); f.navn.focus(); return false; } if(!f.postnr.value.match(/^\d{3,4}$/)){ alert("Fejl i postnummer"); f.postnr.focus(); return false; }
onsubmit="return valider(this);" .... genialt :) og dog så enkelt.
html.dk ? bruger det ikke, og det er jo godt kan jeg forstå. :)
Vi kan kun blive enige om at din onsubmit ting har mange fordele over knap tingen, men jeg kunne da godt tænke mig at høre om der er fundametale ting galt med at 'kigge' i formen med f.eks. document.getElementById(), når nu du skriver at metoden er udskældt.
Den fundamentale fejl er besvær med vedligeholdelse (altså er der ikke noget rigtigt galt !-)
-- skriver du et valideringsscript på ovenstående måde, kan du faktisk have flere forskellige forms i samme dokument, som du validerer med det samme script ...
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.