18. juni 2005 - 20:52
Der er
7 kommentarer og 1 løsning
Skjule input felter
Hej Jeg har et billed galeri, hvor der er en select box, hvor der kan vælges hvilke gruppe albumet skal oprettes i, eller oprette et nyt. Grupperne er årstal 2004, 2005 Hvis man vælger en gruppe som er oprettet sørger funktionen groupnamecheck() som er java script at input felterne albumgroupname og albumgroupdescription skjules. Jeg har lavet så den vælger nuværende år hvis det eksistere, men kan ikke finde ud af at skjule input felterne albumgroupname og albumgroupdescription. Hvordan laves det ? <select name="albumgroup" id="albumgroup" onChange="groupnamecheck();"> <option value="">-- Opret Ny --</option> <?PHP $aar = date("Y"); $groups = albumgroups(); for($i = 0; $i < count($groups); $i++){ if($groups[$i] == $aar ) echo "<option value=\"".$groups[$i]."\" selected=\"selected\">".$groups[$i]."</option>"; else echo "<option value=\"".$groups[$i]."\">".$groups[$i]."</option>"; } ?> </select> <br /><input type="text" name="albumgroupname" id="albumgroupname" maxlength="20" size="20" value="Navn" onClick="if(this.value=='Navn'){this.value='';}" onBlur="if(this.value==''){this.value='Navn';}" /> <br /><input type="text" name="albumgroupdescription" id="albumgroupdescription" maxlength="255" value="Billeder" onClick="if(this.value=='Billeder'){this.value='';}" onBlur="if(this.value==''){this.value='Billeder';}" size="20" /> function groupnamecheck(){ document.album.albumgroupname.style.display = 'none'; document.album.albumgroupdescription.style.display = 'none'; var albumgroup = document.album.albumgroup.value; SelNumber = document.album.albumgroup.selectedIndex; SelValue = document.album.albumgroup.options[SelNumber].value; if (SelValue == ''){ document.album.albumgroupname.style.display = 'inline'; document.album.albumgroupdescription.style.display = 'inline'; }
Annonceindlæg fra Barco
document.getElementById('albumgroupname').style.visibility = "hidden" document.getElementById('albumgroupdescription').style.visibility = "hidden"
Hvor / hvordan skal det indsættes, har prøvet med følgende, men det dur ikke. for($i = 0; $i < count($groups); $i++){ if($groups[$i] == $aar ){ echo "<option value=\"".$groups[$i]."\" selected=\"selected\">".$groups[$i]."</option>"; <script language="javascript"> document.getElementById('albumgroupname').style.visibility = "hidden" document.getElementById('albumgroupdescription').style.visibility = "hidden" </script> } else echo "<option value=\"".$groups[$i]."\">".$groups[$i]."</option>"; }
Nu har jeg lidt svære ved at overskue logikken i din kode, men det skal formentlig ind i din groupnamecheck() et eller andet passende sted: function groupnamecheck() { document.album.albumgroupname.style.display = 'none'; document.album.albumgroupdescription.style.display = 'none'; document.getElementById('albumgroupname').style.visibility = "hidden" document.getElementById('albumgroupdescription').style.visibility = "hidden" var albumgroup = document.album.albumgroup.value; SelNumber = document.album.albumgroup.selectedIndex; SelValue = document.album.albumgroup.options[SelNumber].value; if (SelValue == '') { document.album.albumgroupname.style.display = 'inline'; document.album.albumgroupdescription.style.display = 'inline'; } }
Min groupnamecheck() virker OK Det jeg mangler er inden mine input felter albumgroupname og albumgroupdescription vises skal der laves et tjek på min select box om der er valgt gruppe for i år f.eks 2005 Noget i stil med nedenstående, men det virker ikke rigtig. <script language="javascript"> SelNumber = document.album.albumgroup.selectedIndex; SelValue = document.album.albumgroup.options[SelNumber].value; if (SelValue != ''){ document.getElementById('albumgroupname').style.visibility = "hidden" document.getElementById('albumgroupdescription').style.visibility = "hidden" } </script>
Som din kode står lige nu så udføres den kun en gang. Du skal have pakket det ind i en funktion, og den funktion skal så aktiveres af en passende event-handler - f.eks. onChange(...).
Er det ikke bare at skjule dem fra start ?-) <br /><input type="text" name="albumgroupname" id="albumgroupname" maxlength="20" size="20" value="Navn" onClick="if(this.value==this.defaultValue){this.value='';}" onBlur="if(this.value==''){this.value=this.defaultValue;}" style="visibility:hidden;" /> <br /><input type="text" name="albumgroupdescription" id="albumgroupdescription" maxlength="255" value="Billeder" onClick="if(this.value==this.defaultValue){this.value='';}" onBlur="if(this.value==''){this.value=this.defaultValue;}" size="20" style="visibility:hidden;" />
Jeg kan ikke bare skjule den fra starten da det er afhængig af hvad der er valgt i select box albumgroup. Men det virker det du skrev fra starten nielle, koden skal bare komme efter koden til input felterne. Der laver jeg et tjek på hvad der er valgt i select boxen. Tak for hjælpen. Lægger du et svar nielle.
Vi tilbyder markedets bedste kurser inden for webudvikling