\"cardnum\" må kun være tal. \"emonth\" må kun være tal der er større end 1 og mindre end 12. \"eyear\" må kun være tal der er større end eller lig med indeværende år.
Her er en valideringsfunktion. Jeg håber det var noget i den stil du mente. Som du ser har jeg gjort årstallet 4-cifret, hvis du insisterer på at det skal være 2-cifret, skal vi have endnu en regel, altså hvor stort det indtastede tal må være før vi tror at det ligger i forrige århundrede.
<script>
function validateform(thisform) {
regcardnum = /[0-9]/;
if (!regcardnum.test(thisform.cardnum.value) && !thisform.cardnum.value == \"\") { alert(\"Du har brugt ulovlige tegn i cardnum.\"); thisform.cardnum.focus(); thisform.cardnum.select(); return (false); }
if (thisform.emonth.value < 1 | thisform.emonth.value>12) { alert(\"Du har indtastet en ikke eksisterende måned.\"); thisform.emonth.focus(); thisform.emonth.select(); return (false); }
dato=new Date(); year=dato.getFullYear();
if (thisform.eyear.value < year) { alert(\"Du har indtastet et år før i år.\"); thisform.eyear.focus(); thisform.eyear.select(); return (false); } }
OK. Så skal du sætte denne her ind i stedet for den oprindelige som validere året. Dermed bliver alle årstal over 50 opfattet som værende år 19xx. (Du kan selvfølgelig ændre det til 80 eller 90 hvis det er godt nok).
if (thisform.eyear.value < (year-2000)| thisform.eyear.value > (year-2000+50)) { alert(\"Du har indtastet et år før i år.\"); thisform.eyear.focus(); thisform.eyear.select(); return (false); }
Iøvrigt - hvis der også skal valideres om der overhovedet er tastet noget ind, skal du tilføje følgende til de to sidste validerings-\"if\"er:
ok. tak :) Jeg har ændret scriptet til nedenstående, men har stadig problemer med, at man kan taste et bogstav i cardnum ?!
function validateform (thisform) {
regcardnum = /[0-9]/;
if ((!regcardnum.test(thisform.cardnum.value) && !thisform.cardnum.value == \"\") | thisform.cardnum.value == \"\") { alert(\"Du har brugt ulovlige tegn i cardnum.\"); thisform.cardnum.focus(); thisform.cardnum.select(); return(false); }
if (thisform.emonth.value < 1 | thisform.emonth.value > 12 | thisform.emonth.value == \"\") { alert(\"Du har indtastet en ikke eksisterende måned.\"); thisform.emonth.focus(); thisform.emonth.select(); return(false); }
dato = new Date(); year = dato.getFullYear();
if (thisform.eyear.value < (year-2000) | thisform.eyear.value > (year-2000+50) | thisform.eyear.value == \"\") { alert(\"Du har indtastet et år før i år.\"); thisform.eyear.focus(); thisform.eyear.select(); return(false); } }
if ((regcardnum.test(thisform.cardnum.value) | (thisform.cardnum.value == \"\"))) { alert(\"Du har brugt ulovlige tegn i cardnum.\"); thisform.cardnum.focus(); thisform.cardnum.select(); return(false); }
if (thisform.emonth.value < 1 | thisform.emonth.value > 12 | thisform.emonth.value == \"\") { alert(\"Du har indtastet en ikke eksisterende måned.\"); thisform.emonth.focus(); thisform.emonth.select(); return(false); }
dato = new Date(); year = dato.getFullYear();
if (thisform.eyear.value < (year-2000) | thisform.eyear.value > (year-2000+50) | thisform.eyear.value == \"\") { alert(\"Du har indtastet et år før i år.\"); thisform.eyear.focus(); thisform.eyear.select(); return(false); } }
</script>
Herefter tester den for alle bogstaver og besynderlige tegn - hvis der er nogen der mangler kan de sættes ind.
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.