2012-12-03 52 views
0

我只是試圖訪問一個文本框控件(它具有runat =「server」屬性)的值。被困了幾個小時尋找答案。每次我嘗試獲取值時,它都是空的。JavaScript不訪問基於asp.net的html頁面元素

JavaScript文件:

function validateRegistration() { 
var username = document.getElementById("<%=username.ClientId%>").value; 
document.write(username); 
} 

ASPX文件:

<asp:Content ID="Content3" ContentPlaceHolderID="mainContentPlaceHolder" runat="server"> 
    <p> 
     Fill in the following form to register:</p> 
    <p> 
     Username: 
     <asp:TextBox ID="username" name="username" runat="server"></asp:TextBox></p> 
    <input id="register" type="submit" value="Register" onclick="validateRegistration()"/> 
</asp:Content> 
+0

1.您是否正確地在腳本文件中出現<%= username.ClientId%>?在頁面加載後檢查它? 2.提交表單後,頁面會重新加載,可以添加返回false;在JS函數結束並將onclick =「validateRegistration()」更改爲onclick =「return validateRegistration();」 –

+0

Microsoft JScript運行時錯誤:無法獲取屬性「值」的值:對象爲空或未定義。這是我得到的錯誤。 – Deniz

+0

加載頁面後按Ctrl + U或使用檢查器來檢查JS腳本 –

回答

0

你有沒有嘗試使用

var username = document.getElementById('<%= username.ClientID%>').value;

我在我的頁面中有類似的代碼,工作正常。

0

它應該是(注意是大寫d):

var username = document.getElementById("<%=username.ClientID%>").value; 
document.write(username); 
+0

我只是嘗試過,同樣的問題仍然存在。我不認爲它實際上有所作爲。此外,.value甚至不在Visual Studio中的建議代碼列表中 – Deniz