2012-01-17 82 views
0

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

回答

2

嘗試使用ClientID財產和改變.Value.value

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

不應該有問題..他已經明確設置了id 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

2

對於onload處理程序分配,您正在使用==而不是=

這...

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

應該是這樣的......

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

或者乾脆這個...

window.onload = a1; 
1

問題可能與你是如何定義onload功能將其更改爲:

window.onload = a1; 

P.S:在Javascript中使用===運算符進行類型安全比較。