Verborgen eigenschap van een knop in HTML

Ik probeer drie knoppen weer te geven met één klik op een knop. Voordat er op een knop wordt geklikt, zijn alle drie de knoppen verborgen. Ik stel de verborgen eigenschap in en ik roep ook een functie aan met een klik op de knop. Het probleem is dat wanneer ik de pagina laad, alle knoppen zichtbaar zijn. Het werkte perfect voordat ik CSS toevoegde. Ik begrijp niet waar het probleem zit.

Hier is mijn code:

   .buttons a, .buttons button{
    display:block;
    float:left;
    margin:0 7px 0 0;
    background-color:#f5f5f5;
    border:1px solid #dedede;
    border-top:1px solid #eee;
    border-left:1px solid #eee;
    font-family:"Lucida Grande", Tahoma, Arial, Verdana, sans-serif;
    font-size:12px;
    line-height:130%;
    text-decoration:none;
    font-weight:bold;
    color:#565656;
    cursor:pointer;
    padding:5px 10px 6px 7px; /* Links */
    }
    .buttons button{
    width:auto;
    overflow:visible;
    padding:4px 10px 3px 7px; /* IE6 */
    }
    .buttons button[type]{
    padding:5px 10px 5px 7px; /* Firefox */
    line-height:17px; /* Safari */
    }
    *:first-child+html button[type]{
        padding:4px 10px 3px 7px; /* IE7 */
    }
    .buttons button img, .buttons a img{
    margin:0 3px -3px 0 !important;
    padding:0;
    border:none;
    width:16px;
    height:16px;
    }
    /* STANDARD */
    button:hover, .buttons a:hover{
    background-color:#dff4ff;
    border:1px solid #c2e1ef;
    color:#336699;
    }
    .buttons a:active{
    background-color:#6299c5;
    border:1px solid #6299c5;
    color:#fff;
    }
    /* POSITIVE */
    button.positive, .buttons a.positive{
    color:#529214;
    }
    .buttons a.positive:hover, button.positive:hover{
    background-color:#E6EFC2;
    border:1px solid #C6D880;
    color:#529214;
    }
    .buttons a.positive:active{
    background-color:#529214;
    border:1px solid #529214;
    color:#fff;
    }
    /* NEGATIVE */
    .buttons a.negative, button.negative{
    color:#d12f19;
    }
    .buttons a.negative:hover, button.negative:hover{
    background:#fbe3e4;
    border:1px solid #fbc2c4;
    color:#d12f19;
    }
    .buttons a.negative:active{
    background-color:#d12f19;
    border:1px solid #d12f19;
    color:#fff;
    }
    /* REGULAR */
    button.regular, .buttons a.regular{
    color:#336699;
    }
    .buttons a.regular:hover, button.regular:hover{
    background-color:#dff4ff;
    border:1px solid #c2e1ef;
    color:#336699;
    }
    .buttons a.regular:active{
    background-color:#6299c5;
    border:1px solid #6299c5;
    color:#fff;
    }
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <link rel="STYLESHEET" type="text/css" href="dba_style/buttons.css" />
      <title>Untitled Document</title> 
      <script type="text/javascript">
      function change(){
    document.getElementById("save").hidden = "";
    document.getElementById("change").hidden = "";
    document.getElementById("cancel").hidden = "";
      }
      </script>
    </head>
    <body>
      <form name="form1" method="post" action="">
      <div class="buttons">
          <button class="regular" name="edit" id="edit" onclick="change();">
              <img src="dba_images/textfield_key.png" alt=""/>
              Edit
          </button>
          <button type="submit" class="positive" name="save" id="save" hidden="hidden">
              <img src="dba_images/apply2.png" alt=""/>
              Save
          </button>
          <button class="regular" name="change" hidden="hidden" id="change">
              <img src="dba_images/textfield_key.png" alt=""/>
              change
          </button>
          <button class="negative" name="cancel" id="cancel" hidden="hidden">
              <img src="dba_images/cross.png" alt=""/>
              Cancel
          </button>
      </div>
      </form>
    </body>
 </html>

Antwoord 1, autoriteit 100%

Het werkt ook zonder jQuery als u de volgende wijzigingen aanbrengt:

  1. Voeg type="button"toe aan de bewerkknop om de indiening van het formulier niet te activeren.

  2. Verander de naam van uw functie van change()in iets anders.

  3. Gebruik hidden="hidden"niet, maar gebruik in plaats daarvan CSS: style="display: none;".

De volgende code werkt voor mij:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="STYLESHEET" type="text/css" href="dba_style/buttons.css" />
<title>Untitled Document</title>
</head>
<script type="text/javascript">
function do_change(){
document.getElementById("save").style.display = "block";
document.getElementById("change").style.display = "block";
document.getElementById("cancel").style.display = "block";
}
</script>
<body>
<form name="form1" method="post" action="">
<div class="buttons">
<button type="button" class="regular" name="edit" id="edit" onclick="do_change(); return false;">
    <img src="dba_images/textfield_key.png" alt=""/>
    Edit
</button>
<button type="submit" class="positive" name="save" id="save" style="display:none;">
    <img src="dba_images/apply2.png" alt=""/>
    Save
</button>
<button class="regular" name="change" id="change" style="display:none;">
    <img src="dba_images/textfield_key.png" alt=""/>
    change
</button>
    <button class="negative" name="cancel" id="cancel" style="display:none;">
        <img src="dba_images/cross.png" alt=""/>
        Cancel
    </button>
</div>
</form>
</body>
</html>

Antwoord 2, autoriteit 7%

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
function showButtons () { $('#b1, #b2, #b3').show(); }
</script>
<style type="text/css">
#b1, #b2, #b3 {
display: none;
}
</style>
</head>
<body>
<a href="#" onclick="showButtons();">Show me the money!</a>
<input type="submit" id="b1" value="B1" />
<input type="submit" id="b2" value="B2"/>
<input type="submit" id="b3" value="B3" />
</body>
</html>

Other episodes