2014-01-23 40 views
0

我試圖驗證使用JavaScript ASPX textbpx當if語句中的Javascript執行我收到以下錯誤:驗證ASPX texbox - 未定義或空引用

0x800a138f - JavaScript的運行時錯誤:無法獲取屬性未定義或空引用

'值' 下面是在JavaScript函數在aspx頁面:

<script type="text/javascript"> 
function myFunction(var1) 
{ 
if (document.getElementById("<%=TextBox1.ClientID%>").value == "") 
{ 
    alert("Please enter something"); 
    document.getElementByID("<%=TextBox1.ClientID%>").focus(); 
} 
else 
{ 
alert("Text box has value"); 
} 
} 
</script> 

以下是ASPX:

<div id="Div1"> 
    <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="myFunction('TextBox1')" /> 
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static">TextBox Data</asp:TextBox> 

我都試過了, 「的valueOf」, 「innerText屬性」 也。我也嘗試傳遞TextBox1作爲avriable,但仍然無法正常工作。

有誰知道我爲什麼無法從JavaScript函數訪問TextBox1?

謝謝

+0

看看在瀏覽器中頁面的源,看看元素'input'用'ID =「TextBox1的」'有 – Igor

+0

您好,感謝響應。沒有輸入元素,只有一個按鈕和文本框。 TextBox ID是TextBox1 – KentE

+0

運行Web應用程序時,請在瀏覽器中查看頁面的html源代碼 - 右鍵單擊​​並選擇「查看源代碼」或「查看頁面源代碼」。服務器端的'TextBox'控件應該成爲'input' html元素。 – Igor

回答

-1

試試這個

if(document.getElementById('<%= yourtextboxid.ClientID%>').value != "") 
    { 
     alert("has value!") 
    } else { 
     alert("please enter some thing"); 
     document.getElementById('<%= yourtextboxid.ClientID%>').focus(); 
     } 
+0

感謝您的回覆。這個工作,但只有當我把它放在函數的頂部。如果它在最後,它就會失敗。我有其他的函數的頂部和底部之間創建的對象。我想知道是否有一些代碼導致了這個錯誤。無論如何,再次感謝。這個網站是岩石。 – KentE

+0

@KentE :)這必須在代碼中的任何地方工作。如果它不在最後,你必須逐行調試你的代碼。 –

相關問題