2014-01-16 211 views
1

我有一个默认隐藏的按钮,但希望仅在单击另一个按钮后才可见按钮。我正在使用JavaScript来实现这一目标,但目前为止还没有工作,我不知道我在这里做错了什么。如何在使用JavaScript单击另一个按钮时隐藏/显示按钮

这里是触发该showButton函数的代码:

<asp:Button ID="btnUpdate" runat="server" Text="SAVE" OnClick = "Update" Visible = "false" OnClientClick="return showButton();" 
    Font-Bold="False" Font-Size="Large" Height="30px" Width="157px"/> 

这里是默认

<asp:Button ID="btnSubmit" runat="server" Text="Submit" Width="183px" Visible="false" 
    onclick="btnSubmit_Click" 
    OnClientClick="return validate();" 
     Font-Bold="True" Font-Size="Medium" Height="30px" 
     style="margin-right: 1px; margin-left: 185px;" ForeColor="#336699" /> 

这里隐藏按钮是我的javascript:

<script type ="text/javascript"> 
    function showButton() { 
     document.getElementById('btnSubmit').style.visibility = 'visible'; 
    } 

</script> 

回答

1

在asp.net上,当您设置Visible="false"意味着该按钮甚至不会在页面上呈现。

所以,你的代码无法工作,因为在第一个地方你的按钮不存在最后一页,而不是在最后一页上呈现。

你必须做的是用css隐藏它,例如,添加style="visibility:hidden"Visible="true"

其次,当您尝试使用JavaScript,你需要获得最终渲染id作为

<script type ="text/javascript"> 
    function showButton() { 
     document.getElementById('<%=btnSubmit.ClientID%>').style.visibility = 'visible'; 
    } 
</script> 

要sumarize

  • 取出可见,或将其设置为true
  • 得到它用css风格隐藏它
  • 使用asp.net代码获取呈现的ID
+1

非常感谢你,你的解决方案非常完美。谢谢 – moe

+0

@moe欢迎您。 – Aristos

0

您可以使用类或直接在样式中修改块与无块之间的显示:样式。

0

你没有设置asp:Button明确的ClientID属性,所以这取决于你的页面是如何配置的,可以用比“btnSubmit按钮”不同的ID来产生实际id按钮的属性。您应该检查您生成的标记,并确保您尝试查找的ID与ASP.NET为按钮“生成”的标识匹配。

以下是ClientID上的MSDN's docs

0

我对ASP不太熟悉,所以我无法解决这方面的问题,但我确实知道您使用return showButton();作为您的onclick函数,但showButton函数不返回任何内容。虽然有些浏览器可以处理这个问题(Firefox的最新版本似乎并不在意),但有些浏览器可能不会。

尝试更改OnClientClick="return showButton();"OnClientClick="showButton();"或在showButton函数末尾添加return true;语句。

相关问题