[英]Problems accessing ASP.NET Controls from JavaScript
很抱歉这个愚蠢的基本问题。 但是我真的不知道如何解决这个问题。 我有ASP控件(一个TextBox
和一个DropDownList
)。 现在,我需要访问TextBox
value
属性以及DropDownList
SelectedIndex
属性。 这应该很简单:
对于TextBox
:
document.getElementById("<%= myControl.ClientID >").value
对于DropDownList
:
document.getElementById("<%= myControl.ClientID %>").selectedindex
但是在Visual Studio 2008中,当我编写这些代码时,它不起作用。 我找不到相应控件的任何value
或selectedindex
属性。 我不明白这一点,因为在大多数论坛和教程中,它们都是以我提到的简单方式提出的。
HTML代码:
<div> <asp:TextBox ID="myText" runat="server" /> <asp:DropDownList ID="myList" runat="server" /> </div>
还有其他方法吗,或者我只是在这里想念什么?
首先, jQuery可以帮助您编写很多javascript,您应该使用此路径。
要回答您的问题,您不仅需要使用MyControlId.ClientID
,还需要使用MyControlId
例如:
var t = document.getElementById('<%= myTextBoxID.ClientID %>').value;
alert(t); // textbox value
var d = document.getElementById('<%= myDropDownID.ClientID %>'),
dSelected = d.options[d.selectedIndex].value;
alert(dSelected); // dropdown value
使用jQuery,这将仅仅是:
var t = $('#<%= myTextBoxID.ClientID %>').val(), // for your textbox
d = $('#<%= myDropDownID.ClientID %>').val(); // for your selectbox
alert(t ' --> ' + d);
接缝处,从注释中您仍然没有运气,那么问题必须出在控件或名称本身中,请尝试以下操作以调试问题:
假设您有:
<asp:TextBox runat="server" id="MyTextBox" Text="Hello" />
在该行的正下方写下:
<h2><%= MyTextBox.ClientID %></h2>
并打开浏览器的检查器(Firebug或IE Dev工具),然后运行javascript以查看是否获得Hello
字符串,如下所示:
注意:我使用了MyTextBox
,请将其更改为您在<h2>
标记内获得的名称
尝试使用单个标点符号。
document.getElementById('<%= myTextBox.ClientID %>').value
几个答案推荐jQuery
但我认为您仅应在需要时使用它。 如果您只是从元素中获取价值,那么就无需在您的网站上引入新的库。 如果您打算使用大量的Javascript,动画等。那么jQuery就有意义。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.