web-dev-qa-db-ja.com

htmlのボタンの隠しプロパティ

1回のボタンクリックで3つのボタンを表示しようとしています。ボタンをクリックする前に、3つのボタンはすべて非表示になります。非表示のプロパティを設定し、ボタンのクリック時に関数を呼び出しています。問題は、ページをロードすると、すべてのボタンが表示されることです。 cssを追加する前は完全に機能していましたが、どこに問題があるのか​​わかりません。 HTMLコードは次のとおりです。

<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 change(){
document.getElementById("save").hidden = "";
document.getElementById("change").hidden = "";
document.getElementById("cancel").hidden = "";

}
</script>
<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>

そして、ここに私が使用している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;
}

編集をクリックすると、3つのボタンhiddenfalseプロパティが設定されるように変更できること。前もって感謝します。

26
ashah142

次の変更を行うと、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>
68
Aletheios
<html>
<head>
<script src="http://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>
3
Brant