Avatar billede steen-h Mester
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';
  }
Avatar billede nielle Nybegynder
18. juni 2005 - 21:23 #1
document.getElementById('albumgroupname').style.visibility = "hidden"
document.getElementById('albumgroupdescription').style.visibility = "hidden"
Avatar billede steen-h Mester
18. juni 2005 - 21:35 #2
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>";
              }
Avatar billede nielle Nybegynder
18. juni 2005 - 21:41 #3
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';
    }
}
Avatar billede steen-h Mester
18. juni 2005 - 21:52 #4
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>
Avatar billede nielle Nybegynder
18. juni 2005 - 21:57 #5
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(...).
Avatar billede roenving Novice
19. juni 2005 - 06:43 #6
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;" />
Avatar billede steen-h Mester
19. juni 2005 - 08:16 #7
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.
Avatar billede nielle Nybegynder
19. juni 2005 - 08:25 #8
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester