HTML中按钮的隐藏属性

Posted

技术标签:

【中文标题】HTML中按钮的隐藏属性【英文标题】:Hidden property of a button in HTML 【发布时间】:2012-07-07 00:28:30 【问题描述】:

我试图在单击一次按钮时显示三个按钮。在单击按钮之前,所有三个按钮都被隐藏。我设置了隐藏属性,并且我还在单击按钮时调用了一个函数。问题是当我加载页面时所有按钮都是可见的。在我添加 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" />
              Edit
          </button>

          <button type="submit" class="positive" name="save" id="save" hidden="hidden">
              <img src="dba_images/apply2.png" />
              Save
          </button>

          <button class="regular" name="change" hidden="hidden" id="change">
              <img src="dba_images/textfield_key.png" />
              change
          </button>

          <button class="negative" name="cancel" id="cancel" hidden="hidden">
              <img src="dba_images/cross.png" />
              Cancel
          </button>
      </div>
      </form>
    </body>
 </html>

我可以进行哪些更改,以便在我单击编辑时将三个按钮的hidden 属性设置为false

【问题讨论】:

可以选择 jQuery 吗?我想你可以调用一个 toggle() 方法来做你想做的事。 是的,我可以使用 jQuery。可以给我一个如何做到这一点的例子吗? 【参考方案1】:

如果您进行以下更改,它也可以在没有 jQuery 的情况下工作:

    type="button" 添加到编辑按钮,以免触发表单提交。

    将函数名称从 change() 更改为其他任何名称。

    不要使用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" />
    Edit
</button>

<button type="submit" class="positive" name="save" id="save" style="display:none;">
    <img src="dba_images/apply2.png" />
    Save
</button>

<button class="regular" name="change" id="change" style="display:none;">
    <img src="dba_images/textfield_key.png" />
    change
</button>

    <button class="negative" name="cancel" id="cancel" style="display:none;">
        <img src="dba_images/cross.png" />
        Cancel
    </button>
</div>
</form>
</body>
</html>

【讨论】:

【参考方案2】:
<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>

【讨论】:

嘿,谢谢...它正在工作,但现在我要尝试使用我在按钮中使用的 css。

以上是关于HTML中按钮的隐藏属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 HTML5 中隐藏视频标签的全屏按钮

HTML5 自动显示和隐藏文字,hidden属性,为何以下方法不能实现?

PyQt5 QDialog隐藏问号按钮

android按钮隐藏属性

JavaFX 如何隐藏Pagination的按钮?

html table 如何用按钮显示和隐藏表格中的内容?