02. september 2003 - 16:16
Der er
11 kommentarer og 1 løsning
verdien af en select
Jeg har en select og en input. Hvordan kan jeg gøre sådan at hvis select's verdi ikker er lig med "OTHER" så skal inputten forsvinde! men hvis den er = "OTHER" så skal inputten dukke frem!
Annonceindlæg fra Computerworld
02. september 2003 - 16:21
#1
<input id="minInput" type="text"> <br><br> <select onchange="if(this.value=='OTHER')document.getElementById('minInput').style.visibility='hidden';else document.getElementById('minInput').style.visibility='visible'"> <option value="Første">Første</option> <option value="OTHER">OTHER</option> </select>
02. september 2003 - 17:04
#2
Er det muligt at gøre sådan at den kan skjule 2 input felter og vise 2 input felter i stedet for 1
02. september 2003 - 17:13
#3
Ja, men så vil det nok være hensigtsmæssigt at bygge det lidt anderledes: <div style="visibility:visible" id="inputDiv"><input id="minInput" type="text"> <br><input id="minInput" type="text"> <br></div><br> <select onchange="if(this.value=='OTHER')document.getElementById('inputDiv').style.visibility='hidden';else document.getElementById('inputDiv').style.visibility='visible'"> <option value="Første">Første</option> <option value="OTHER">OTHER</option> </select> -- så kan du sætte så mange inputs ind i div'en som du har lyst til ... Jeg har med vilje her brugt visibility, som gør at andre elementer ikke flytter rundt, men man kan også bruge display:block|none som vil betyde at andre elementer overtager pladsen, når dispaly='none'
Slettet bruger
02. september 2003 - 20:36
#4
Hm, this.value virker vist ikke i særlig mange browsere. Mit bud ville være: <select onchange="document.getElementById('inputDiv').style.visibility = (this.options[this.selectedIndex].value == 'OTHER') ? 'visible' : 'hidden';">
02. september 2003 - 23:38
#5
>>phoenixv -- jeg blev faktisk lidt overrasket, da jeg tilfældigvis en dag kom til at opdage at selectbox.value er IE4+ og NN6+ så jeg er begyndt at bruge den i almindelige svar ...
03. september 2003 - 16:16
#6
Hmm kan ikke hitte ud af hvorfor det ikke virker! når jeg teste scripet for sig selv virker det jo fint! Men her "Hider" den det overhoved ikke <tr> <td width="15%" height="19" class="tbhead">Sub Gruppe:</td> <td width="60%" height="19" class="tbbody"> <select class="input" size="1" name="cat" onchange="if(this.value=='OTHER')document.getElementById('inputDiv').style.visibility='visible';else document.getElementById('inputDiv').style.visibility='hidden'"> <? $foresp = mysql_query("SELECT * FROM 1x_cat ORDER BY name") or die (mysql_error()); $ja = mysql_num_rows($foresp); IF ($ja == 0){} else { while($data = mysql_fetch_array($foresp)){ echo "<option value=\"$data[id]\""; IF($data[id]==$_GET[cat]){echo " selected "; } echo ">$data[ocat] / $data[name]</option>"; }} ?> <option value="OTHER"></option> <option <?IF("OTHER"==$_GET[cat]){echo "selected"; }?> value="OTHER">Ny Sub Gruppe</option> </select> </td> </tr> <div style="VISIBILITY: hidden" id="inputDiv"> <tr> <td width="15%" valign="top" class="tbhead">If other:</td> <td width="60%" height="19" valign="top" class="tbbody"> <input id="inputDiv" class="input" type="text" value="<?=$_GET[other]?>" name="other" size="20"> </td> </tr> </div> </table>
03. september 2003 - 16:20
#7
Prøv at vise os koden, når php er færdig -- altså kildekoden fra en side !-)
03. september 2003 - 17:01
#8
<tr> <td width="15%" height="19" class="tbhead">Sub Gruppe:</td> <td width="60%" height="19" class="tbbody"> <select class="input" size="1" name="cat" onchange="if(this.value=='OTHER')document.getElementById('inputDiv').style.visibility='visible';else document.getElementById('inputDiv').style.visibility='hidden'"> <option value="26">03x.dk / 03x.dk oplysninger</option> <option value="17">Andet / Fun </option> <option value="15">Andet / Glemte tider</option> <option value="23">Andet / House of doom</option> <option value="27">Fest / Kaspers Fest</option> <option value="14">Skole / Klasse billeder</option> <option value="21">Andet / Knallerter</option> <option value="24">Andet / Musik</option> <option value="28">Andet / Photoshop</option> <option value="25">Skole / På skolen</option> <option value="13">Fest / Scor-en-sut Fest</option> <option value="22">Fest / Stines Fest</option> <option value="OTHER"></option> <option value="OTHER">Ny Sub Gruppe</option> </select> </td> </tr> <div style="VISIBILITY: hidden" id="inputDiv"> <tr> <td width="15%" valign="top" class="tbhead">If other:</td> <td width="60%" height="19" valign="top" class="tbbody"> <input id="inputDiv" class="input" type="text" value="" name="other" size="20"> </td> </tr> </div> </table>
03. september 2003 - 17:11
#9
Jeg tror forklaringen er noget med hvordan man placerer det i DOM-hierarkiet -- og i dette tilfælde er <div>-tagget overflødigt, så du kan bare: <tr style="VISIBILITY: hidden" id="inputDiv"> <td width="15%" valign="top" class="tbhead">If other:</td> <td width="60%" height="19" valign="top" class="tbbody"> <input class="input" type="text" value="" name="other" size="20"> </td> </tr> -- altså skjule/vise tabelrækken !-)
03. september 2003 - 17:37
#10
Ok tak virker nu gider du skrive et svar?
03. september 2003 - 17:39
#11
Velbekomme '-)
03. september 2003 - 17:55
#12
-- og tak for points ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling