15. marts 2005 - 12:29
Der er
26 kommentarer og 3 løsninger
Skjule textfields. Det virker næsten
Hej experts. Har fundet nedenstående eksempel. <form name="hej"> <input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='none';" checked>Skjul textbox <input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='block';">vis textbox <table border='2'> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1"> </td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr> </table> </form> det virker fint hvis man sletter tabellen og ligger den i en div. det virker også hvis man laver alle <td>'erne i een <tr>. Men jeg kan ikke gøre det på hver enkel <tr> please help!!!
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?
15. marts 2005 - 12:46
#1
Det her er godt nok ikke pænt, men det giver dig sikkert en ide. Det vigtigste er, at du er nødt at tildele forskellige navne til dine TR'er for at kunne adressere dem hver for sig. <form name="hej"> <input type='radio' name='radio' onClick="document.getElementById('skjul1').style.display='none';" checked>Skjul textbox <input type='radio' name='radio' onClick="document.getElementById('skjul1').style.display='block';">vis textbox<br/> <input type='radio' name='radio' onClick="document.getElementById('skjul2').style.display='none';" checked>Skjul textbox <input type='radio' name='radio' onClick="document.getElementById('skjul2').style.display='block';">vis textbox<br/> <input type='radio' name='radio' onClick="document.getElementById('skjul3').style.display='none';" checked>Skjul textbox <input type='radio' name='radio' onClick="document.getElementById('skjul3').style.display='block';">vis textbox<br/> <table border='2'> <tr style="display:none" id='skjul1'><td><input type='text' name='txt' name="t1"> </td></tr> <tr style="display:none" id='skjul2'><td><input type='text' name='txt' name="t2"></td></tr> <tr style="display:none" id='skjul3'><td><input type='text' name='txt' name="t3"></td></tr> </table> </form>
15. marts 2005 - 12:57
#2
Du kan sagtens lave den på hver TR. Dine ID'er er bare ens, derfor skal man itere gennem dem.
15. marts 2005 - 12:58
#3
hehe, fik svaret samme tid:)
15. marts 2005 - 13:01
#4
Man kan da lave en getElementsById, mener jeg at huske - som giver en element-list nø?
15. marts 2005 - 13:02
#5
Eller er det getElementsByTag/name?
Slettet bruger
15. marts 2005 - 13:06
#6
Sherlocks svar kan også gøres pænere som han jo selv siger :) Det kunne f.eks. omskrives til: <SCRIPT language="JavaScript"> <!-- function ShowHide(x) { if(window.document.getElementById('skjul' + x).style.display == 'block') { window.document.getElementById('skjul' + x).style.display='none'; } else { window.document.getElementById('skjul' + x).style.display='block'; } } //--> </SCRIPT> <form name="hej"> <input type='radio' name='radio' onClick="ShowHide(1);">Skjul textbox / vis tekstbox <br> <input type='radio' name='radio' onClick="ShowHide(2);">Skjul textbox / vis tekstbox <br> <input type='radio' name='radio' onClick="ShowHide(3);">Skjul textbox / vis tekstbox <br> <table border='0'> <tr style="display:none" id='skjul1'><td><input type='text' name='txt' name="t1"> </td></tr> <tr style="display:none" id='skjul2'><td><input type='text' name='txt' name="t2"></td></tr> <tr style="display:none" id='skjul3'><td><input type='text' name='txt' name="t3"></td></tr> </table> </form>
15. marts 2005 - 13:11
#7
Med det her, tager den samtlige og viser. Det modsatte skal du gøre med Skjul, tag en parameter med i funktionen, så er den hjemme. <form name="hej"> <input type='radio' name='radio' onClick="document.getElementById('skjul').style.display='none';" checked>Skjul textbox <input type='radio' name='radio' onClick="showAll();">vis textbox <table border='2' id="tableRow"> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1"> </td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr> </table> </form> <script language="javascript"> function showAll() { var tempArray = document.getElementById('tableRow').getElementsByTagName("TR"); for (var i = 0; i < tempArray.length; i++) { if(tempArray[i]) tempArray[i].style.display = "block"; } } </script>
15. marts 2005 - 13:15
#8
Nu spørger jeg lige om noget fjollet, men har man ikke en eller anden form for XPath-implementation direkte tilgængeligt i JavaScript?
15. marts 2005 - 13:26
#9
Har ikke se meget erfaring med XPath, men i stedet for elementByTagName kan man bruge document.all.item("skjul"), det er lidt mere smidigt:) Umiddelbart kan jeg ikke finde noget om det til J-Script...
15. marts 2005 - 13:32
#10
hej og tak for alle jeres svar. Har prøvet dem, men de virker jo ikke helt? Alle de felter, som ligger i hver deres <tr> skal forsvinde når man trykker på en radioknap og frem igen når der trykkes på en anden knap. Jeg overvejer lidt at skrotte tabeller og lave det i divs? Er der ikke en løsning?
15. marts 2005 - 13:40
#11
hvis du benytter document.all.tags("TR") Får du samtlige TR frem Herefter kan du gøre hvad du vil med dem, men det er så alt dit HTML. Du kan sagtens pakke de områder ind i DIV'er som du ønsker skal forsvinde/komme frem, når man trykker på en knap. Så kan du bruge document.all.item("skjul"), hvor "skjul" så er dit DIV navn
15. marts 2005 - 13:45
#12
Jamen, jeg kan simpelthen ikke forstå, hvorfor man ikke kan sige. Den og den tr skal vises og den og den skal ikke vises med via et id??? jeg er ik vild go til javascript bare så i ved det? det virker bedst med eksempler
15. marts 2005 - 13:47
#13
Det kan man også godt - de kan bare ikke have samme id, for så bliver browseren forvirret og tager kun en enkelt af dem. Derfor giver man dem forskellige id'er og så kan man tilgå dem et af gangen.
15. marts 2005 - 13:49
#14
document.all.item("skjul"), dette her får samtlige af dine elementer, med "skjul" ID'et, som jeg skrev før. Hvis alle dine TR hedder det, er det dem du får er det de, du får.
15. marts 2005 - 13:49
#15
yes, men man kan sagtens få dem alle, og iterere igennem dem. som i mit eksempel ovenfor.
15. marts 2005 - 13:52
#16
altså sådan her? onClick="document.all.item('skjul').style.display='none';
15. marts 2005 - 13:55
#17
sådan har jeg gjordt og det virker altså ikke?: <input type="radio" value="Forespørgesel" name="anmodning" onClick="document.all.item('skjul').style.display='none';" checked></td> <input type="radio" value="Endelig booking" name="anmodning" onClick="document.all.item('skjul').style.display='block';"></td> <tr style="display:none" id="skjul"> <td>2. Sagsnr</td> <td><input type="text" name="sagsnr" size="18"></td> </tr> <tr style="display:none" id="skjul"> <td>3. Projektnr</td> <td><input type="text" name="projektnr" size="18"></td> </tr> <tr> <td>4. Kontorrelateret udgift (Konferrence o.lign)</td> <td><input type="checkbox" name="Kontorrelateret" value="Ja"></td> </tr> <tr>
15. marts 2005 - 13:57
#18
den siger "style is null or not an object"
15. marts 2005 - 13:58
#19
Så er det altså også serveret på et fad:) <form name="hej"> <input type='radio' name='radio' onClick="showHideAll('none');" checked>Skjul textbox <input type='radio' name='radio' onClick="showHideAll('block');">vis textbox <table border='2' id="tableRow"> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t1"> </td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t2"></td></tr> <tr style="display:none" id='skjul'><td><input type='text' name='txt' name="t3"></td></tr> </table> </form> <script language="javascript"> function showHideAll(param) { var tempArray = document.all.item("skjul"); for (var i = 0; i < tempArray.length; i++) { if(tempArray[i]) tempArray[i].style.display = param; } } </script>
15. marts 2005 - 14:00
#20
document.all.item('skjul') returnerer et array, dette skal du køre igennem, derfor melder den fejl til dig.
15. marts 2005 - 14:01
#21
Det ser super fedt ud skyggen!!! men det virker ik :( der sker ikke noget, når man trykker på nogen af dem?
15. marts 2005 - 14:02
#22
Det ser ellers virkelig godt ud!
15. marts 2005 - 14:06
#23
Hvis jeg kører præcis det kode jeg har kopieret ind i IE, så kører det. Husk lige at genopfrisk siden, så den ikke kører den cached.
15. marts 2005 - 14:06
#24
hov undskyld sorry... det var cache på min computer der lavet lort i den.... fedt nok skyggen.... du har været en stor hjælp... og også jer andre.... points bliver uddelt om lidt :-)
15. marts 2005 - 14:06
#25
hehe... netop ;-)
15. marts 2005 - 14:09
#26
Hvordan får man egentligt noget god karma her i biksen?
15. marts 2005 - 14:10
#27
hehe... det ved jeg ikke, men vil med glæde give dig noget,,, du har hjulpet mig før!!! Hermed et svar til dig skyggen...
15. marts 2005 - 14:29
#28
Måtte lige undersøge det:) Hvis man klikker på brugeren som har kommenteret eller givet et svar kan man enten se hans info, eller give karma. Så blev jeg også lidt klogere i dag:)
Vi tilbyder markedets bedste kurser inden for webudvikling