nille99Medlem sedan aug. 2002353 inlägg jag har en rullningslista med två alternativ
Den har två värden ja och nej
när alternativet nej är framme så syns text samt en textruta
när alternativet ja så är båda gömda
Jag har fått det att fungera i explorer, men varken i Mozilla eller Netscape får jag det att fungera
min kod på rullningslista är
select id=select47 name=Samma class="listrutor" onChange="if(this.options.value=='Nej')TSamma.style.visibility='';else TSamma.style.visibility='hidden';if(this.options.value=='Nej')ASamma.style.visibility='';else ASamma.style.visibility='hidden'">
JojoxxMedlem sedan juni 20004 306 inlägg Är inte riktigt säker på hur du vill ha det, men här är ett exempel;
<form>
<select id="select47" name="Samma" class="listrutor" onChange="document.getElementById('TSamma').style.display=(this.selectedIndex==0)?'none':'inline'; document.getElementById('ASamma').style.display=(this.selectedIndex==0)?'none':'inline';">
<option value="Ja">Ja</option>
<option value="Nej">Nej</option>
</select><br>
<input name="foo" id="TSamma" style="display:none;">
<textarea name="bar" id="ASamma" style="display:none;"></textarea>
</form>
Fungerar i IE, Mozilla och Netscape 6. Netscape 4 kan inte rendera om sidan efter det att den är laddad så där måste du arbeta med lager, och skall du ha delar av ett formulär i lager som du skall kunna gömma måste du använda 2 formulär där du hela tiden kopierar data mellan dem när man ändrar något värde. Lite bökigare alltså.
nille99Medlem sedan aug. 2002353 inlägg Det fungerade
hur ska jag skriva om jag vill att dom ska gömmas från början
<input name="foo" id="TSamma" style="display:none;">
vad ska värde display va på om det ska gömmas
nille99Medlem sedan aug. 2002353 inlägg hur skriver jag om jag har flera alternativ?
ja, nej, kanske, vet inte
JojoxxMedlem sedan juni 20004 306 inlägg
Det fungerade
hur ska jag skriva om jag vill att dom ska gömmas från början
<input name="foo" id="TSamma" style="display:none;">
vad ska värde display va på om det ska gömmas
Ovanstående skall vara gömt från början. Motsatsen till none kan vara "inline" eller "block". Se CSS - display
hur skriver jag om jag har flera alternativ?
ja, nej, kanske, vet inte
Skall då även text-rutorna "kanske" visas eller? :e I exemplet används detta för varje objekt som skall visas/gömmas;
document.getElementById('element_id').style.display=(this.selectedIndex==0)?'none':'inline';
Där "element_id" är ID på det element som skall påverkas. Det som bestämmer ifall elementet skall visas är i detta fall listan och ifall första valet (index 0) - värdet växlar mellan "none" och "inline".
nille99Medlem sedan aug. 2002353 inlägg om jag har fyra alternativ och bara vill att sista ska gömmas
ska jag ändra index värd till 4 eller
ska jag
'none':'none':'none':'inline';
nille99Medlem sedan aug. 2002353 inlägg jag fick det att fungera
document.getElementById('element_id').style.display=(this.selectedIndex==3)?'inline':'none';
nille99Medlem sedan aug. 2002353 inlägg En kort fråga
Jag vill ha samma resultat på två olika alternativ från listrutan
kan man skriva
eller något liknaden
this.selectedIndex==1 and 3)
eller måste man skriva
(jag får problem med att skriva så långa kod)
document.getElementById('element_id').style.display=(this.selectedIndex==1)?'inline':'none';
document.getElementById('element_id').style.display=(this.selectedIndex==3)?'inline':'none';
JojoxxMedlem sedan juni 20004 306 inlägg Inte and eftersom selectedIndex (valt listpost) inte kan vara 2 samtidigt, det är or vi söker, och operatorn för det i JavaScript är ||
Alltså;
document.getElementById('element_id').style.display=(this.selectedIndex==1||this.selectedIndex==3)?'inline':'none';
nille99Medlem sedan aug. 2002353 inlägg Jag har 20 olika document.getElementById
med || har jag fått ner till 12 st document.getElementById
men endå så får jag inte allt att visa sig på sidan
Är kodraden för lång?
kan man ha samma id namn för olika listrutor,text mm?
colioneMedlem sedan juni 20013 386 inlägg Nej ett id är väl unikt har jag för mej. Men du kan ha samma klass för olika saker.