使用javascript设置标签为可见
问题描述:
我有这个Asp.net页面,我试图设置标签和图像可见和diplay文本在客户端单击事件的标签上。使用javascript设置标签为可见
这是ASP代码:
<td align="right">
<asp:Image ID="AlertPic" runat ="server" Visible="false" ImageUrl="~/images/i_AlertWarning.png" />
<asp:Label ID="lblError" runat ="server" Visible="false" CssClass="errorMessage"></asp:Label>
</td>
在JavaScript端:
function xx(sender,eventArgs){
document.getElementById('lblError').style.visibility = "visible";
document.getElementById('AlertPic').style.visibility = "visible";
document.getElementById('lblError').innerHTML = "Please fill in Search Criteria";
}
这是行不通的。
答
使用一个div 知名度=隐藏 OR 知名度=可见 insted的。
<div id ="image" visibility = "hidden">
<asp:Image ID="AlertPic" runat ="server" ImageUrl="~/images/i_AlertWarning.png" />
<asp:Label ID="lblError" runat ="server" CssClass="errorMessage"></asp:Label>
</div>
现在只设定ID图像到div可见或隐藏,因为它代表它在默认情况下
答
由于Visible
属性控制着控件的渲染,所以不能这样做。也许你应该用一些CSS来隐藏它。
答
如果你想在客户端操作,你不能做可见(因为控件不会被渲染,所以不能访问DOM)... 使用CSS显示样式为“none”,然后切换到客户端。
<asp:Label ID="lblError" runat ="server" style="display:none" CssClass="errorMessage"></asp:Label>
使其可见
document.getElementById('lblError').style.display = 'inherit';
隐藏它
document.getElementById('lblError').style.display = 'none';
答
的Visible
属性设置为false时,会导致您的具体控制到DOM在不被渲染全部:
获取或设置一个值表示服务器控件是否在屏幕上呈现为UI的 。
因此,如果它没有被渲染,它将无法通过Javascript访问。 你最好只通过display:none
或visibility: hidden
样式通过CSS隐藏元素,然后它实际上将被渲染和可访问:
<asp:Image ID="AlertPic" ... style='visibility:none' />
<asp:Label ID="lblError" ... style='visibility:none'></asp:Label>
答
更新HTML代码
<td align="right">
<asp:Image ID="AlertPic" runat ="server" ImageUrl="~/images/i_AlertWarning.png" style="display:none" />
<asp:Label ID="lblError" runat ="server" CssClass="errorMessage" style="display:none"></asp:Label>
</td>
和JavaScript代码
function xx(){
document.getElementById('<%=lblError.ClientID %>').style.visibility = "visible";
document.getElementById('<%=AlertPic.ClientID %>').style.visibility = "visible";
document.getElementById('<%=lblError.ClientID %>').innerHTML = "Please fill in Search Criteria";
}
隐藏
希望这对你有所帮助。
答
function CLick()
{
$("#<%=lblError.ClientID%>").toggleClass("visibleoff");
};
.visibleoff{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td align="right">
<asp:Image ID="AlertPic" runat ="server" CssClass="" ImageUrl="../Content/img/images.jpg" onClick="CLick();" />
<asp:Label ID="lblError" runat ="server" CssClass="errorMessage visibleoff" Text="hi this is the error"></asp:Label>
</td>
使用jQuery选择器和CSS类
这里的代码你刚才在您的代码,并尝试它希望它可以帮助你
我想你应该参考下面的答案[我可以看到一个隐形控件与jQuery](http://stackoverflow.com/questions/3025246/how-can-i-visible-an-invisible-control-with-jquery-hide-and-show-不工作) –