2010-05-05 41 views
1

我有一對夫婦的asp.net文本框控件的一個asp.net web窗體:如何從javascript的asp.net文本框中檢索值?

<asp:TextBox ID="txtTextBox" runat="server" /> . 

我有包含在該頁面的JavaScript文件tools.js:

<script src="tools.js" type="text/javascript"></script> 

如何我可以從JavaScript訪問txtTextBox的值嗎?使用

document.getElementById('<%= txtTextBox.ClienID %>').value; 
document.getElementById('<%= txtTextBox.UniqueID %>').value; 
document.getElementById('<%= txtTextBox %>').value; 

我用盡,但他們沒有工作。

任何想法?

回答

2

你不能從你的js文件becase的其一個ASP.Net房產訪問txtTextBox.ClientID。你在用文本框的價值做什麼? 考慮給JS-函數的值或以這種方式引用到每個參數的文本框(FE的onchange事件):

<asp:TextBox ID="txtTextBox" runat="server" onchange="javascript: callFunction(this);" /> 

其中callFuntion是你的JS-功能tools.js:

function callFunction(txtBox){ 
    var txtBoxValue; 
    if(txtBox != null) 
     txtBoxValue = txtBox.value; 
} 

Regards, Tim

5

你在ClientID(!正確的)解決方案:)缺少t,像這樣:

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

注意,雖然上面的代碼必須是的頁面,因此打印出這樣的到客戶端:

document.getElementById('txtTextBox').value; 
//or if it's deeper: 
document.getElementById('Parent_txtTextBox').value; 

如果是在外部JS,那麼它打印出字面上這樣,無需更換<%= %>部分:

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

既然沒有<input id="<%= txtTextBox.ClientID %>" />,不工作:)

+1

Doh,打我吧。 +1 – GenericTypeTea 2010-05-05 10:06:02

+2

是的,這裏的關鍵是,這必須是你的aspx中的JavaScript,而不是在你的js文件中。 ASP.Net不會執行.js文件,除非你明確地告訴IIS這樣做,即使那樣你也很難找到文本框。 – 2010-05-05 10:06:44

相關問題