此代码不显示值,我不知道为什么?
我有服务器控制:
<asp:TextBox ID="txtTest" runat="server" Visible="false" TextMode="MultiLine"
Rows="3" Columns="23" CssClass="white-scroll" />
在javascript函数中:
var eventText = document.getElementById('<%=txtTest.ClientID%>').value;
alert (eventText);
我输入文字然后点击调用javascript函数的按钮,但警告框不会显示输入的文字。
编辑:当我使用Text =“some text”初始化文本时,它会在alert中显示,我想在客户端输入文本并在Javascript函数中获取它的值。
由于
答案 0 :(得分:3)
使用标签或文本框可见的设置为false,以便它可以访问JavaScript中的值
溶胶
1)
创建一个div并设置style="display:none;"
,因此标签不会显示在UI(浏览器)上,但值可以在JavaScript中访问。
答案 1 :(得分:2)
这是因为你的服务器控件被称为“txtTest”而不是“txtEventDescription”
将您的javascript功能更改为:
var eventText = document.getElementById('<%=txtTest.ClientID%>').value;
alert (eventText);
编辑:好的,我看到你现在已经改变帖子显示代码并重命名为js控件,所以上面不再相关(对于那些对我的答案感到困惑的人): - )
问题是Visible="false"
- 此控件不会呈现到客户端,因此无法通过javascript访问(因为HTML元素不存在于客户端)
因此,使用CSS隐藏元素,然后在其上调用alert。示例代码段
CSS
.hide-element {
display: none;
}
HTML标记
<asp:TextBox ID="txtTest" runat="server"
Columns="23"
CssClass="white-scroll hide-element"
Rows="3"
TextMode="MultiLine"/>
的JavaScript
var eventText = document.getElementById('<%=txtTest.ClientID%>').value;
alert (eventText);
这样你肯定会得到警报
您的警报为空,因为您尚未为Text
asp:Textbox
答案 2 :(得分:0)
将Visible="true"
设为您的文本框而不是测试。
<asp:TextBox ID="txtTest" runat="server" TextMode="MultiLine"
Rows="3" Columns="23" CssClass="white-scroll" />
答案 3 :(得分:0)
如果“txtTest”文本框中有visible =“false”,那么它不会在客户端计算机上的html代码上呈现,如果它没有在客户端的html代码上,那么javascript如何调用此文本框。因为当javascript按其ID搜索此文本框时,它找不到它并且它会出错。
答案 4 :(得分:0)
您可以为控件分配任何其他自定义属性,即
<asp:TextBox ID="txtTest" runat="server" Visible="false" TextMode="MultiLine"
Rows="3" Columns="23" CssClass="white-scroll"
clientID="myClientID" />
然后使用jquery进行访问控制,如
var txtVal = $('textbox[clientID=myClientID]').val();
希望它有所帮助。