04. august 2004 - 11:25Der er
16 kommentarer og 1 løsning
Validering af talfelt
Jeg har en ASP formular hvor jeg gerne vil have et felt valideret, således at det kun må indeholde tal. Feltet må gerne efterlades tomt, det er kun hvis det bliver udfyldt at det skal være tal. Feltet skal også kunne udfyldes med decimaltal f.eks 2,5. Kan det lade sig gøre ?
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
function validerTal(flt){ if(!/^$|^\d+([,\.]\d+)?$/.test(flt.value)){ alert(flt.name + " må kun indeholde et tal eller være tomt !-)"); flt.select(); flt.focus(); return false; } return true; }
-- hvis du så kalder det fra f.eks. onchange på feltet sådan:
Jeg kan ikke få det til at virke. Koden ser nu sådan ud: <script type="text/javascript"> function validerTal(li){ if(!/^$|^\d+(,\d+)?$/.test(li.value)){ alert(li.name + " må kun indeholde et tal eller være tomt !-)"); li.select(); li.focus(); return false; } return true; }
</script> Er det det forkerte sted jeg har ændret navnet til det felt der skal valideres ? Den sender formularen OK , men cheker ikke om det er tal i feltet
Synes godt om
Slettet bruger
04. august 2004 - 13:11#5
Nu virker valideringen. Koden ser sådan ud: <script type="text/javascript"> function validerTal(flt){ if(!/^$|^\d+(,\d+)?$/.test(flt.value)){ alert(flt.LI + " må kun indeholde et tal eller være tomt !-)"); flt.select(); flt.focus(); return false; } return true; }
</script> Men nu får jeg alert boxen uanset om feltet er tomt eller med tal/tekst ? Jeg har ændret onchange til onsubmit ?
Hele koden ser sådan ud: <script type="text/javascript"> function validerTal(flt){ if(!/^$|^\d+(,\d+)?$/.test(flt.value)){ alert(flt.LI + " må kun indeholde et tal eller være tomt !-)"); flt.select(); flt.focus(); return false; } return true; }
<script type="text/javascript"> function validerTal(f){ if(!/^$|^\d+(,\d+)?$/.test(f.li.value)){ alert("LI må kun indeholde et tal eller være tomt !-)"); f.li.select(); f.li.focus(); return false; } return true; } </script>
-- og så skal en onsubmit typisk stoppe submit ved fejl, og det gøres sådan:
Jeg har lige et lille problem mere hvis du stadig er der. Jeg har flere felter jeg gerne vil have valideret på samme måde, kan man ikke gentage koden, bare med et andet feltnavn ?
function validerTal(flt){ if(!/^$|^\d+(,\d+)?$/.test(flt.value)){ alert(flt.name + " må kun indeholde et tal eller være tomt !-)"); flt.select(); flt.focus(); return false; } return true; }
Synes godt om
Slettet bruger
04. august 2004 - 15:41#15
Perfekt. Endnu en gang tak. Nu tror jeg jeg har fattet det.
Bueno, du fik også lavet onsubmitten om til at kalde valider i stedet for validerTal !-)
Synes godt om
Slettet bruger
04. august 2004 - 15:59#17
Yes, det gjorde jeg og det virker fint
Synes godt om
Ny brugerNybegynder
Din løsning...
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.