05. december 2004 - 18:07Der er
8 kommentarer og 1 løsning
Validering af radio knapper
Jeg har en form med nogle radio knapper og et tekstfelt. Jeg skal have det valideret, så der tjekkes for indhold.
Jeg har dette javascript, som tjekker for indhold i den første række radioknapper. Men vil gerne havde det udvidet til tjekke alle rækker(13) og tekstfeldet.
function validering() { error = 0; if(!((document.forms[0].kamp1[0].checked) || (document.forms[0].kamp1[1].checked) || (document.forms[0].kamp1[2].checked)) && (error==0)) { alert('Du har ikke udfyldt kamp 1!'); error = 1; }
Prøv: <script type="text/javascript"> var antal_raekker = 3; var raekke_navn = "kamp"; function validering(frm) { var error = 0; for (i=1;i<=antal_raekker;i++) { r = frm.elements[raekke_navn+i]; found_checked = false; for (j=0;j<r.length;j++) { if (r[j].checked) {found_checked = true;} } if (!found_checked) {error = 1;alert("Du har ikke udfyldt række nr. "+i);break;} } if (!error) { frm.submit(); } } </script>
Joda :-) <script type="text/javascript"> var antal_raekker = 3; var raekke_navn = "kamp"; function validering(frm) { var error = 0; for (i=1;i<=antal_raekker;i++) { r = frm.elements[raekke_navn+i]; found_checked = false; for (j=0;j<r.length;j++) { if (r[j].checked) {found_checked = true;} } if (!found_checked) {error = 1;alert("Du har ikke udfyldt række nr. "+i);break;} }
if (frm.tekstfelt.value.search(/[^\s]/ig) == -1) {alert("Du skal udfylde tekstfeltet.");error = 1;} if (!error) { frm.submit(); } } </script>
skal måske lige nævnes at: if (frm.tekstfelt.value.search(/[^\s]/ig) == -1) tester om der er skrevet andet end mellemrum og den slags (\s betyder whitespace). Man kunne også have skrevet: if (frm.tekstfelt.value.search(/[\S]/ig) == -1) som gør det samme, men måske lidt pænere at se på. \S betyder alt andet end whitespace
Hvis du lynhurtigt kan lave så alerten til tekstboksen ikke bliver vist når der er er kommet en allert på en af radio knapperne, så ville det være lækkert.
Men ikke noget du behøver bøvl med, for det virker jo ellers efter hensigten.
if (error && frm.tekstfelt.value.search(/[^\s]/ig) == -1) {alert("Du skal udfylde tekstfeltet.");error = 1;} så tester den bare om der er fundet fejl før, for så er der jo ingen grund til at teste tekstfeltet.
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.