2009-11-27 33 views
2

我有一个带有面板的aspx页面。我正在使用面板显示一个消息框。面板ID是“panMessage”。该面板包含一个按钮标签“隐藏”。我使用后面的代码显示面板,但当用户单击隐藏按钮时,需要用JS关闭面板。我重视与按钮的onclick事件下面的代码 -style.visibility无法在FireFox中工作

onclick="javascript:(<%=panMessage.ClientID%>).style.visibility='hidden';" 

click事件完全在IE浏览器,但不能在Firefox。我用Google搜索,并改变了代码 -

onclick="javascript:(<%=panMessage.ClientID%>).style.display='none';" 

但仍代码不工作,即面板是不会在Firefox中隐藏尽管它使用这个新的代码也在IE工程。

有人可以指导我最近做错了什么吗?

感谢您的配合。

+0

显示我们所提供的HTML - >运行页面,查看源代码,拷贝/粘贴相关的HTML。 – roosteronacid 2009-11-27 13:34:13

回答

4

在我看来,问题在于(<%=panMessage.ClientID%>)

onclick="(<%=panMessage.ClientID%>).style.display='none';" 

呈现时会看到这样的:

onclick="(panMessage_1).style.display='none';" 

你应该把类似:

onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';" 
+0

感谢你们所有的朋友!你们是天才。代码工作正常。 – IrfanRaza 2009-11-27 13:42:39

2

使用

document.getELementById ("<%=panMessage.ClientID%>")检索元素,然后尝试设置显示或可见性属性。

将display属性设置为none,以便控件不占用空间。

+0

,加上报价 – 2009-11-27 13:38:47

1

我们真的需要看到实际的HTML输出能够为您进行调试。

正确的输出应该是这个样子:

onclick="document.getElementById('panMessage').style.display='none';" 

请注意,您不需要在事件处理程序javascript:

4

首先,visibility hiddendisplay none是不一样的。前者将使该元素消耗与原来相同的空间,如果它可见的话,而后者则不会。 display: nonevisibility: hidden; position: absolute;的同义词

除此之外,您的问题可能是由于您访问元素的方式。尝试改为:

onclick="document.getElementById('<%=panMessage.ClientID%>').style.display='none';" 
相关问题