21. juli 2004 - 11:20
Der er
5 kommentarer og 1 løsning
Ved valg af radio-button skal tekst "foldes ud"
Jeg har to radio buttons: <table width="100%"> <tr> <td> <form name="formVaelg" method="post"> <table align="left" valign="middle"> <tr> <td colspan="2">Vælg mellem disse to:</td> </tr> <tr> <TD><INPUT type="radio" name="valg1" value="valg1"></TD> <td>Valg nr. 1</td> </tr> <tr> <TD><INPUT type="radio" name="valg2" value="valg2"></TD> <td>Valg nr. 2</td> </tr> </table> </form> </td> </tr> </table> Jeg vil gerne have, at når man vælger én af dem, så kobles en tekst på under, afhængig af hvilken man valgte - og afsluttes af tekst, der står til sidst uanset hvilken man valgte. Jeg har ledt på nettet men ikke fundet noget brugbart. Nogen forslag???
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
<script type="text/javascript"> function visValgte(elm){ var valgt = elm.value.replace(/^.*(\d)$/,"$1"); for(i=1;3>i;i++){ document.getElementById('tekst'+i).style.display = (i==valgt)?'block':'none'; } } </script> <table width="100%"> <tr> <td> <form name="formVaelg" method="post"> <table align="left" valign="middle"> <tr> <td colspan="2">Vælg mellem disse to:</td> </tr> <tr> <TD><INPUT type="radio" name="valg" value="valg1" onclick="visValgte(this)"></TD> <td>Valg nr. 1</td> </tr> <tr> <TD><INPUT type="radio" name="valg" value="valg2" onclick="visValgte(this)"></TD> <td>Valg nr. 2</td> </tr> </table> </form> </td> </tr> <tr id="tekst1" style="display:none;"> <td>Tekst1</td> </tr> <tr id="tekst2" style="display:none;"> <td>Tekst2</td> </tr> <tr id="tekst3"> <td>Tekst3</td> </tr> </table>
Det ser ud til at være lige præcis det, jeg har brug for. Gider du forklare mig følgende linje: var valgt = elm.value.replace(/^.*(\d)$/,"$1"); Jeg kan ikke rigtig gennemskue, hvad der sker hér?
Den piller tallet ud af radioens værdi ved at fjerne det, som ikke er det sidste tegn, som også skal være et tal ... -- og netop det med tallet var grunden til konstruktionen, for har du alligevel ikke andet end de to, kunne du nøjes med: var valgt = elm.value.substring(elm.value.length-1); -- virker med numre mellem 0 og 9, hvor den anden med et simpelt + tilføjet vil virke med alle mulige tal: var valgt = elm.value.replace(/^.*(\d+)$/,"$1"); Velbekomme '-)
Et sidste spørgsmål (hvis du gider) - hvis nu mine values skal være navne uden tal, hvad så? Kan man det uden store problemer?
Nu har jeg lagt dem sammen til een radio-group, fordi det ellers ikke giver mening at bruge radios ... Og udformningen er sådan, at du kan udvide den stort set uendeligt, og på en meget simpel måde lave mange !-) Alternativet, hvis du har values, hvor vi ikke kan hente noget vi kan sammenligne er, at vi koder det langsomt: <TD><INPUT type="radio" name="valg" value="valg2" onclick="visValgte(2)"></TD> <script type="text/javascript"> function visValgte(valgt){ for(i=1;3>i;i++){ document.getElementById('tekst'+i).style.display = (i==valgt)?'block':'none'; } } </script>
Vi tilbyder markedets bedste kurser inden for webudvikling