Javascript ASP文本框默认从JS不可见和可见

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();

我有一个文本框,它最初是不可见的,复选框OnClick JS method,我希望按钮是可见的

最初,复选框似乎不可见,但当我单击复选框时,JS方法会给出一个“未找到对象”的错误。如果我从文本框中删除Visible=“false”,代码就可以正常工作

<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>