1. ホーム
  2. html

[解決済み] HTMLでのボタンの隠しプロパティ

2022-03-04 05:56:46

質問

1回のボタンクリックで3つのボタンを表示させようとしています。ボタンをクリックする前は、3つのボタンはすべて非表示になっています。hiddenプロパティを設定し、ボタンクリック時に関数を呼び出しています。問題は、ページを読み込むと、すべてのボタンが表示されていることです。CSSを追加する前は完璧に動作していました。どこに問題があるのか理解できません。

以下は私のコードです。

    .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>

どのような変更を加えれば、編集をクリックしたときに hidden プロパティは、3つのボタンに false ?

解決方法は?

また、以下の変更を行えば、jQueryなしでも動作します。

  1. 追加 type="button" を編集ボタンに追加することで、フォームの送信をトリガーしないようにします。

  2. 関数の名前を change() を他の何かに変更します。

  3. を使用しないでください。 hidden="hidden" 代わりにCSSを使用します。 style="display: none;" .

以下のコードで動作しています。

<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>