我试图使用asp.net复选框服务器控件来隐藏div。我为服务器控件添加了一个onclick javascript代码,但它似乎无法正常工作....任何建议?
function hideDiv(obj) {
if (obj.checked==true) {
document.getElementById("divMap").style.visibility=true
}
else {
document.getElementById("divMap").style.visibility = false
}
}
答案 0 :(得分:2)
function hideDiv(obj) {
if (obj.checked==true) {
document.getElementById("divMap").style.display='block';
}
else {
document.getElementById("divMap").style.display = 'none';
}
}
或者您可以使用jquery
function hideDiv(obj) {
if (obj.checked) {
$("#divMap").show();
}
else {
$("#divMap").hide();
}
}
答案 1 :(得分:2)
这也可以在服务器端实现。
标记:
<asp:CheckBox id="chk" runat="server" AutoPostBack="true" />
<div id="div" runat="server"></div>
C#:
protected void chk_CheckedChanged(object sender, System.EventArgs e)
{
switch ((sender.checked)) {
case true:
div.Visible = false;
break;
case false:
div.Visible = true;
break;
}
}
答案 2 :(得分:0)
尝试使用以下代码而不是
document.getElementById("divMap").style.visibility = false
document.getElementById("divMap").style.visibility=true
document.getElementById("divMap").style.display='none'
document.getElementById("divMap").style.display='block'
答案 3 :(得分:0)
要在asp.net中访问和使用服务器端控件,您必须使用它的客户端ID(ClientID)属性。
function hideDiv(obj) {
if (obj.checked==true) {
document.getElementById("<%=YourControlID.ClientID %>").style.visibility=true
}
else {
document.getElementById("<%=YourControlID.ClientID %>").style.visibility = false
}
}
答案 4 :(得分:0)
从javascript用户执行服务器控制操作“&lt;%= control Name .ClientID%&gt;”
function hideDiv(obj) {
if (obj.checked==true) {
document.getElementById('<%= divMap.ClientID%>').style.display = 'Block';
}
else {
document.getElementById('<%= divMap.ClientID%>').style.display = 'None';
}
}