Avatar billede dennism Nybegynder
10. juli 2003 - 10:10 Der er 17 kommentarer og
2 løsninger

JavaScript: Skjul form-felt

Jeg har denne checkbox:
<INPUT TYPE="checkbox" NAME="status_username" onChange="status(username);"

Jeg skal nu have lave en funktion ved navn status, som skjuler det felt som står i parentesen, når man IKKE har sat flyeben i checkboxen. Hvordan går jeg det? Min form hedder search. I dette tilfælde er username en input boks, men i andre tilfælde er det en selectboks.
Avatar billede dennism Nybegynder
10. juli 2003 - 10:40 #1
Forstår I ikke mit spørgsmål, eller kan I ikke hjælpe?
Avatar billede medions Nybegynder
10. juli 2003 - 12:08 #2
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY onload="TjekAgeFrom();">

<script>
    function TjekAgeFrom() {
        var    s1 = document.frm1.agefrom.selectedIndex;
        var s2 = document.frm1.agefrom.options[s1].value;
            if (s2 == 08) {
                document.getElementById("ageTo").style.display = 'none';
            }
    }
   
    function setagefrom(txt) {
        if (txt == "") {
            document.getElementById("ageTo").style.display = 'none';
        } else {
            document.getElementById("ageTo").style.display = 'inline';
        }
    }
</script>

<form name="frm1">
    <SELECT NAME="agefrom" class=but onChange="setagefrom(this.value);">
        <OPTION value="">&nbsp;--</option>
        <OPTION  value="04">05</option>
        <OPTION selected value="05">08</option>
    </select>

    <div id="ageTo">
    <select name="ageTo" class="but">
    <OPTION value="04">4</option>
    </select>
    </div>
</form>

</BODY>
</HTML>

//>Rune
Avatar billede dennism Nybegynder
10. juli 2003 - 12:17 #3
Kan det ik gøres på en anden måde?
Avatar billede dennism Nybegynder
10. juli 2003 - 12:18 #4
medions >>

Tror du i øvrigt ikke at det er det forkerte sprøgsmål du har svaret i?
Avatar billede grunken Nybegynder
10. juli 2003 - 12:25 #5
sådan ?

<script language="javascript" type="text/javascript">
function skift(elm){
  f = document.getElementById(elm).style

  if (f.visibility == 'hidden'){
      f.visibility = 'visible';}
  else{
      f.visibility = 'hidden';}
}
</script>

<form>
<INPUT TYPE="checkbox" NAME="status_username" onclick="skift('username');">
<INPUT TYPE="text" ID="username" NAME="username" style="visibility:hidden;">
</form>
Avatar billede dennism Nybegynder
10. juli 2003 - 12:54 #6
Jeg har nu ændret lidt i funktionen:

function skift(elm){
  f = document.getElementById(elm)

  if (f.selectedIndex == 'on'){
      f.style.display = 'inline';
}
  else{
      f.style.display = 'none';}
}

Det er meningen at når "status_username" er CHECKED (=on), så skal min DIV være inline! Hvad gør jeg forkert i koden herover? Der sker nemlig ikke noget, når jeg trykker..
Avatar billede grunken Nybegynder
10. juli 2003 - 13:00 #7
hvad er det lige forskellen er ?

nå okay tilretter den så :)
Avatar billede dennism Nybegynder
10. juli 2003 - 13:04 #8
Jeg har lavet om på if-sætningen:

  if (f.selectedIndex == 'on'){

Vil document.getElementById(elm).selectedIndex ikke have værdien "on", hvis checkboxen er afkrydset?
Avatar billede grunken Nybegynder
10. juli 2003 - 13:07 #9
okay, vi starter lige forfra :)

hvis en checkbox er krydset af hedder det

checked == true

Men hvad er det lige du skal ha ?, den jeg lavede virkede jo fint efter hensigten!
Avatar billede roenving Novice
10. juli 2003 - 13:10 #10
if (f.checked){

-- det var ikke en selct ?-)
Avatar billede dennism Nybegynder
10. juli 2003 - 13:26 #11
Jeg har nu denne funktion:

function skift(elm){
  f = document.getElementById(elm)

  if (f.checked){
      f.style.display = 'inline';
}
  else{
      f.style.display = 'none';}
}

Og sådan ser checkboxen ud:
<INPUT TYPE="checkbox" NAME="status_username" onclick="skift('username_div');" CHECKED>

Nu virker funktionen ikke..Det skal jo også være sådan at hvis jeg kommer ind på siden, og boxen er CHECKED, så skal DIV'en jo være synlig!
Avatar billede roenving Novice
10. juli 2003 - 13:44 #12
Vi får jo også blandet forskellige elementer sammen ...

-- og boxen vil vel altid være checked, når man kommer ind på siden med den kode !-)

function skift(cbox,elm){
  f = document.getElementById(elm)

  if (cbox.checked){
      f.style.display = 'inline';
}
  else{
      f.style.display = 'none';}
}

Og sådan ser checkboxen ud:
<INPUT TYPE="checkbox" NAME="status_username" onclick="skift(this,'username_div');" CHECKED>
<div ID="username_div" NAME="username_div" style="visibility:inline;"></div>
Avatar billede dennism Nybegynder
10. juli 2003 - 14:38 #13
Det dur ikke, da den jo først vil checke om den er checked når man trykker på checkboxen!

Måske du skulle se lidt mere af min kode:

<tr style="text-align: left; height:25px;">
    <td><B>Brugernavn:</B></td><td><INPUT TYPE="checkbox" NAME="status_username" <?PHP if ($_POST[status_username] == "on") { echo"CHECKED"; } ?> onclick="skift(this,'username_div');">
<div id="username_div" style="display:none;">
<INPUT TYPE=text MAXLENGTH=10 name=username class=but size=15 value="<?=$_POST[username]?>">&nbsp;-&nbsp;<SELECT NAME="username_type" class=but>
    <OPTION <?PHP if ($_POST[username_type] == "1") { echo"SELECTED"; } ?> value="1">indeholder
    <OPTION <?PHP if ($_POST[username_type] == "2") { echo"SELECTED"; } ?> value="2">er
    <OPTION <?PHP if ($_POST[username_type] == "3") { echo"SELECTED"; } ?> value="3">starter med
    <OPTION <?PHP if ($_POST[username_type] == "4") { echo"SELECTED"; } ?> value="4">slutter med
</SELECT></div></td>
</tr>
Avatar billede roenving Novice
10. juli 2003 - 14:43 #14
-- nej, men hvis du kigger i det jeg skrev, havde jeg også præcis sat div'en til 'samme' status, så det må være (kun supplement ,-)

    <td><B>Brugernavn:</B></td><td><INPUT TYPE="checkbox" NAME="status_username" <?PHP if ($_POST[status_username] == "on") { echo"CHECKED"; } ?> onclick="skift(this,'username_div');">
<div id="username_div" style="display:<?PHP if ($_POST[status_username] == "on") { echo"inline"; }else echo"none"?>;">
Avatar billede grunken Nybegynder
10. juli 2003 - 14:48 #15
roenving ;)

tror faktisk at han vil have at den skal lave checket når siden loader :)

>dennism har du flere af den slags checkboxe på samme side ?
Avatar billede dennism Nybegynder
10. juli 2003 - 14:50 #16
Jeg har styr på det nu :) Smider du ik også lige et svar roenving? Så kan I dele om point!
Avatar billede roenving Novice
10. juli 2003 - 14:55 #17
>>grunken

-- ja det tænkte jeg også, derfor foreslog jeg at php-koden kunne synkronisere !-)

>>dennism
Velbekomme '-)
Avatar billede roenving Novice
10. juli 2003 - 17:21 #18
-- og takker for points ;~}
Avatar billede dennism Nybegynder
10. juli 2003 - 17:23 #19
Tak for hjælpen..
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