2010-05-05 38 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

相关问题