我正在使用带面板的aspx页面。我正在使用面板来显示消息框。面板ID是“panMessage”。该面板包含一个按钮标签“隐藏”。我正在使用代码显示面板,但是当用户单击“隐藏”按钮时需要使用JS关闭面板。我已经使用按钮的onclick事件附加了以下代码 -
onclick="javascript:(<%=panMessage.ClientID%>).style.visibility='hidden';"
点击事件在IE中完美运行,但在FireFox中无效。我用google搜索并将代码更改为 -
onclick="javascript:(<%=panMessage.ClientID%>).style.display='none';"
但代码仍无效,即面板不会隐藏在FireFox中,尽管它也可以在IE中使用这个新代码。
有人可以指导我,我做错了吗?
感谢您的合作。
答案 0 :(得分:4)
首先,visibility hidden
和display none
不一样。前者将使元素消耗与它本来相同的空间,如果它是可见的,而后者则不会。 display: none
与visibility: hidden; position: absolute;
除此之外,您的问题可能是由于您访问元素的方式。请尝试更改为以下内容:
onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';"
答案 1 :(得分:4)
在我看来问题出在(<%=panMessage.ClientID%>)
。
onclick="(<%=panMessage.ClientID%>).style.display='none';"
渲染时会给出类似的内容:
onclick="(panMessage_1).style.display='none';"
您应该输入类似的内容:
onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';"
答案 2 :(得分:2)
使用
document.getELementById ( "<%=panMessage.ClientID%>" )
检索元素,然后尝试设置显示或可见性属性。
将display属性设置为none,以便控件不占用空格。
答案 3 :(得分:1)
我们真的需要看到实际的HTML输出才能为你调试它。
正确的输出应该如下所示:
onclick="document.getElementById('panMessage').style.display='none';"
请注意,事件处理程序中不需要javascript:
。