Javascript ASP文本框默认从JS不可见和可见
我有一个文本框,它最初是不可见的,复选框OnClick JS method,我希望按钮是可见的 最初,复选框似乎不可见,但当我单击复选框时,JS方法会给出一个“未找到对象”的错误。如果我从文本框中删除Visible=“false”,代码就可以正常工作Javascript ASP文本框默认从JS不可见和可见,javascript,c#,jquery,asp.net,checkbox,Javascript,C#,Jquery,Asp.net,Checkbox,我有一个文本框,它最初是不可见的,复选框OnClick JS method,我希望按钮是可见的 最初,复选框似乎不可见,但当我单击复选框时,JS方法会给出一个“未找到对象”的错误。如果我从文本框中删除Visible=“false”,代码就可以正常工作 <asp:Textbox id="day" runat="server" Visible="false" /> <asp:CheckBox ID="parts" runat="server" onClick="Click();
<asp:Textbox id="day" runat="server" Visible="false" />
<asp:CheckBox ID="parts" runat="server" onClick="Click();" />
<script type="text/javascript">
function Click(){
document.getElementById("day").style.visibility = "visible";
//ERROR **0x800a01a8 - Microsoft JScript runtime error: Object required**
}
</script>
函数单击(){
document.getElementById(“day”).style.visibility=“可见”;
//错误**0x800a01a8-Microsoft JScript运行时错误:需要对象**
}
//错误0x800a01a8-Microsoft JScript运行时错误:需要对象改用静态id模式,使用自动生成的
id来停止它:
e、 g
或者,如果代码位于元素之前,请将其包装在DOM就绪处理程序中:
$(function(){
$('#day').click(function(){
$(this).show();
});
});
$(函数(){…})
只是$(document.ready(function(){…})的一个方便快捷方式
当您使用从未在页面上呈现的visible=false
时,意味着您不能执行document.getEle..
,它将始终为您提供null
值,因此,它将抛出错误
如果此属性为false,则不会呈现服务器控件。-
如何解决这个问题
所以要让它工作,你需要用javascript把它隐藏起来,然后用javascript让它可见
<asp:TextBox ID="day" runat="server" style="display:none;" />
<asp:CheckBox ID="parts" runat="server" onClick="Click();" />
<script type="text/javascript">
function Click() {
document.getElementById("day").style.display = "block"; // use "none" to hide
}
</script>
函数单击(){
document.getElementById(“day”).style.display=“block”;//使用“无”隐藏
}
在服务器端控件上设置Visible=“false”
意味着它将永远不会呈现给浏览器。如果我设置了onload功能,这种情况也会发生。。我在Javascript中遇到了相同的错误如果您在浏览器中查看输出页面,您还将注意到文本框id不是“day”
。您还需要设置clientid=“day”
或更改ID生成方法。您也可以尝试getElementById(“”)或getElementById(“”)
$(function(){
$('#day').click(function(){
$(this).show();
});
});
<asp:TextBox ID="day" runat="server" style="display:none;" />
<asp:CheckBox ID="parts" runat="server" onClick="Click();" />
<script type="text/javascript">
function Click() {
document.getElementById("day").style.display = "block"; // use "none" to hide
}
</script>