需要JavaScript语法修正

需要JavaScript语法修正

问题描述:

我是JavaScript的新手,我编写了下面的小JavaScript来制作回发函数,但它不工作。我需要任何人来纠正它。需要JavaScript语法修正

C#代码:

protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      TextBox4.Text = "nopost"; 
     } 
     else 
     { 
      TextBox4.Text = "post"; 
     } 
    } 

的JavaScript:

<script type="text/javascript"> 
     function a1(){ 
     var hid = document.getElementById('TextBox4').Value; 
     if (hid == "post") { 
      alert('Posted'); 
     } 
     else if (hid == "nopost") { 
     alert('Not Posted'); 
     } 
     } 
     window.onload == function() { 
      a1(); 
     } 
    </script> 

ASP代码

<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox> 
+2

我不确定这是错误,但使用小v值document.getElementById('TextBox4')。value; – Shadow 2012-01-17 17:09:08

+1

什么不起作用? – jrummell 2012-01-17 17:09:35

+2

“不工作”是什么意思? Javascript是否被正确地发送到浏览器?你的浏览器的JavaScript控制台中是否有错误? – millimoose 2012-01-17 17:10:06

尝试使用ClientID财产和改变.Value.value

var hid = document.getElementById('<%= TextBox4.ClientID %>').value; 
+0

不应该有问题..他已经明确设置了id asp:TextBox> – Baz1nga 2012-01-17 17:16:24

+0

如果TextBox4位于实现[INamingContainer]( http://msdn.microsoft.com/en-us/library/system.web.ui.inamingcontainer.aspx),ClientID将是Parent2_Parent1_TextBox4。 – jrummell 2012-01-17 17:18:04

+0

@ Baz1nga它确实很重要,因为ASP.NET生成的ID类似ctl00_ContentPlaceHolder1_TextBox4 – 2012-01-17 17:19:14

对于onload处理程序分配,您正在使用==而不是=

这...

window.onload == function() { 
    a1(); 
} 

应该是这样的......

window.onload = function() { 
    a1(); 
}; 

或者干脆这个...

window.onload = a1; 

问题可能与你是如何定义onload功能将其更改为:

window.onload = a1; 

P.S:在Javascript中使用===运算符进行类型安全比较。