webentwicklung-frage-antwort-db.com.de

versteckte Eigenschaft der Schaltfläche in HTML

Ich versuche, drei Schaltflächen mit einem Klick anzuzeigen. Vor einem Klick auf eine Schaltfläche werden alle drei Schaltflächen ausgeblendet. Ich stelle die versteckte Eigenschaft ein und rufe auch eine Funktion auf einem Knopfklick auf. Das Problem ist, wenn ich die Seite lade, sind alle Schaltflächen sichtbar. Es hat perfekt funktioniert, bevor ich CSS hinzugefügt habe. Ich verstehe nicht, wo das Problem liegt. Hier ist der HTML-Code:

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

Und hier ist das CSS, das ich benutze.

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

Welche Änderungen kann ich vornehmen, damit beim Klicken auf Bearbeiten die Eigenschaft hidden von drei Schaltflächen false festgelegt wird. Danke im Voraus.

26
ashah142

Es funktioniert auch ohne jQuery, wenn Sie die folgenden Änderungen vornehmen:

  1. Fügen Sie der Bearbeitungsschaltfläche type="button" Hinzu, um das Absenden des Formulars nicht auszulösen.

  2. Ändern Sie den Namen Ihrer Funktion von change() in einen anderen Namen.

  3. Verwenden Sie nicht hidden="hidden", Sondern CSS: style="display: none;".

Der folgende Code funktioniert für mich:

<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