15. oktober 2002 - 14:18Der er
9 kommentarer og 1 løsning
Validering ...
Hejsa,
Jeg ku godt bruge lidt hjælp til at validere et par radiobuttons i en formular.
Jeg har 3 forskellige sæt radiobuttons - 1. test1 2. test2 3. test3
I test1 og test2 er der 4 radiobuttons pr. gruppe med værdi 1-4, og i test3 er der 1 radiobutton med en værdi på 5.
Jeg skal så tjekke at test1 OG test2 er valgt ELLER at test3 er valgt ... Dvs. hvis man har markeret i test3, så er det ikke nødvendigt at markere i test1 og test2, men markerer man ikke i test3 skal der markeres i BÅDE test1 og test2 ....
function validerRadio( radioArray ) { for (var i=0; i<radioArray.length; i++ ) { if ( radioArray[i].checked ) return true; //der er valgt een } return false; // der er ikke valgt nogene }; //end validerRadio( radioknap array objekt ) -> boolean
function validerTest1Teat2Test3( formElem ) { if ( validerRadio( formElem.test3 ) ) return true; // alles gut // nix. begge de to andre skal være valgt if ( ! validerRadio( formElem.test1 ) ) return false; // sorry if ( ! validerRadio( formElem.test3 ) ) return false; // sorry return true; // både test1 og test2 bestod testen }; //end validerTest1Teat2Test3( Form objekt ) -> boolean
</script>
i din onsubmit kan du så kalde validerTest1Teat2Test3 <form ... onsubmit="return validerTest1Teat2Test3( this );">
function validerTest1Test2Test3( formElem ) { if ( validerRadio( formElem.test3 ) ) return true; // alles gut // nix. begge de to andre skal være valgt if ( ! validerRadio( formElem.test1 ) ) return false; // sorry if ( ! validerRadio( formElem.test2 ) ) return false; // sorry return true; // både test1 og test2 bestod testen }; //end validerTest1Teat2Test3( Form objekt ) -> boolean
Men det virker bare ikke - når jeg vælger test3 vil den stadig ikke submitte ?! ;)
Du kan lave et html doc med følgende kode og se ;)
<html> <head> <script type='text/javascript'>
function validerRadio( radioArray ) { for (var i=0; i<radioArray.length; i++ ) { if ( radioArray[i].checked ) return true; //der er valgt een } return false; // der er ikke valgt nogene }; //end validerRadio( radioknap array objekt ) -> boolean
function validerTest1Test2Test3( formElem ) { if ( validerRadio( formElem.test3 ) ) return true; // alles gut // nix. begge de to andre skal være valgt if ( ! validerRadio( formElem.test1 ) ) return false; // sorry if ( ! validerRadio( formElem.test2 ) ) return false; // sorry return true; // både test1 og test2 bestod testen }; //end validerTest1Teat2Test3( Form objekt ) -> boolean
function uncheckAll(){ document.survey.test1[0].checked=false; document.survey.test1[1].checked=false; document.survey.test1[2].checked=false; document.survey.test1[3].checked=false;
radioknapper er til når der skal vælges een ud af flere. når der kun er en enkelt radioknap i gruppen bliver den en checkbok. og ikke et array:
function validerTest1Test2Test3( formElem ) { if ( formElem.test3.checked ) return true; // alles gut // nix. begge de to andre skal være valgt if ( ! validerRadio( formElem.test1 ) ) return false; // sorry if ( ! validerRadio( formElem.test2 ) ) return false; // sorry return true; // både test1 og test2 bestod testen }; //end validerTest1Teat2Test3( Form objekt ) -> boolean
jeg vil anbefale du også giver den type="checkbox" så brugeren slipper for at spilde tid på at lede efter de alternativer det runde felt påstår der er. og så han kan af-klikke den igen hvis den bliver valgt ved en fejltagelse.
God pointe ... Synes dog bare at det er bedre at bruge de samme form elementer hele vejen igennem ... ;)
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.