如何从JavaScript的asp.net文本框中检索值?

Tom*_*ter 1 javascript asp.net

我有一个带有几个asp.net文本框控件的asp.net Web表单:

<asp:TextBox ID="txtTextBox" runat="server" /> .
Run Code Online (Sandbox Code Playgroud)

我有一个包含在页面中的javascript文件tools.js:

<script src="tools.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

如何从javascript访问txtTextBox中的值?

我试过用

document.getElementById('<%= txtTextBox.ClienID %>').value;
document.getElementById('<%= txtTextBox.UniqueID %>').value;
document.getElementById('<%= txtTextBox %>').value;
Run Code Online (Sandbox Code Playgroud)

但它们都不起作用.

有任何想法吗?

Nic*_*ver 5

你缺少tClientID(正确的!)解决方案:),就像这样:

document.getElementById('<%= txtTextBox.ClientID %>').value;
Run Code Online (Sandbox Code Playgroud)

请注意,虽然上面的代码必须在页面中,所以它打印出来像客户端:

document.getElementById('txtTextBox').value;
//or if it's deeper:
document.getElementById('Parent_txtTextBox').value;
Run Code Online (Sandbox Code Playgroud)

如果它在外部的js中,那么它会像这样打印出来,而不是替换<%= %>部件:

document.getElementById('<%= txtTextBox.ClientID %>').value;
Run Code Online (Sandbox Code Playgroud)

既然没有<input id="<%= txtTextBox.ClientID %>" />,那就行不通:)

  • 是的,这里的关键点是,这必须是你的aspx中的javascript而不是你的js文件.ASP.Net不会执行.js文件,除非您特意告诉IIS这样做,即使这样你也很难找到文本框. (2认同)