ASP.NET内容页中的javascript错误 功能测试1(w){ document.getElementById(“”).style.width=w; 返回false; } 测试1(10);//这一行出现了一个错误。为什么?

ASP.NET内容页中的javascript错误 功能测试1(w){ document.getElementById(“”).style.width=w; 返回false; } 测试1(10);//这一行出现了一个错误。为什么?,javascript,asp.net,webforms,Javascript,Asp.net,Webforms,当从脚本调用函数Test1(10)时,我得到一个错误。但当它点击按钮时,它工作正常。如何从脚本调用函数(或者如何访问ASP.NET内容页中的onload()函数) 当调用块中的“Test1()”时,该输入字段还不是DOM的一部分。因此,对getElementById()的调用将返回null,函数的第一行将失败 如果将块移动到文本框后面,则它应该可以工作 编辑-您可能还希望在宽度中明确添加“px”。试试这个 <asp:Content ID="Content2" ContentPlac

当从脚本调用函数Test1(10)时,我得到一个错误。但当它点击按钮时,它工作正常。如何从脚本调用函数(或者如何访问
ASP.NET内容页中的
onload()
函数)

当调用
块中的“Test1()”时,该输入字段还不是DOM的一部分。因此,对
getElementById()
的调用将返回
null
,函数的第一行将失败

如果将
块移动到文本框后面,则它应该可以工作

编辑-您可能还希望在宽度中明确添加“px”。

试试这个

    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script type="text/javascript">
    function Test1(w) {
        document.getElementById('<%=TextBox1.ClientID%>').style.width = w;
        return false;
    }
    Test1(10); // This line arises an error. Why ?
</script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <input id="Button1" type="button" value="button" onclick="Test1(10)" />
</asp:Content>

功能测试1(w){
document.getElementById(“”).style.width=w;
返回false;
}
window.onload=函数(){
Test1(10);//此行出现错误。为什么?
}

这是因为在脚本中执行Test1时,文本框不存在。您必须将调用放在document.ready函数中,或者将其移到文本框后面的页面下方。

每次您想要执行javascript代码时,首先,即使是直接从标签中执行,也可以从您必须等待加载dom级别的事件中执行。 所以我们可以这样做:

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<script type="text/javascript">
    function Test1(w) {
        document.getElementById('<%=TextBox1.ClientID%>').style.width = w;
        return false;
    }
window.onload = function() {
    Test1(10); // This line arises an error. Why ?
}
</script>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    <input id="Button1" type="button" value="button" onclick="Test1(10)" />
</asp:Content>

window.onload=函数()
{/*代码*/}
或者在body标记的“onload”事件中执行代码: 像


或者,如果使用JQuery,则可以使用上面的:

    <body onload="Test1(10);">
    </body>

$(文档).ready(函数(){
/*要执行的代码*/
});

您应该等待文档加载
    <body onload="Test1(10);">
    </body>
  <script type="text/javascript">
      $(document).ready(function(){
        /* Code to execute */
      });
  </script>