我正在尝试返回一些输入到我网站上的文本框元素中的文本。在输入一些文本后,我注意到这没有返回数据:
document.getElementById('myTextBox').text;
但是这样做了:
document.getElementById('myTextBox').value;
编辑:上面的javascript用于客户端测试正在读取的内容,使用.text返回一个空字符串,当传回服务器时,确实显示一个空字符串。 .value包含我输入的数据但是当我尝试使用.value服务器端时发生了错误。
然而,当我尝试添加以下内容时,在我的.cs类中:
string myInput = myTextBox.Value;
我收到一条错误消息
“System.Web.UI.WebControls.TextBox不包含的定义 '值' ...“。
我的文本框声明如下:
<asp:TextBox ID="myTextBox" runat="server"></asp:TextBox>
但是,当我尝试将TextBox元素更改为Input元素时,我收到错误消息“类型或命名空间名称'输入'不存在...”
如何将输入到TextBox中的数据传回服务器?
答案 0 :(得分:1)
后面的代码中无法访问HTML元素,例如(输入)。如果使用runat =“server”属性,则可以访问与您使用的Asp.Net控件类似的控件。
如果你想在你的代码隐藏(.cs)中访问你的Asp.Net文本框,你不需要javascript。只需使用:
string value = this.myTextBox.Text
但是,如果你的文本框只是一个HTML输入,那么你需要使用一些Javascript逻辑来获取输入的值并将其传递给你的.cs文件。
为此,你必须做这样的事情: Passing values from javascript to code behind in ASP.NET
答案 1 :(得分:1)
在您所引用的教程中,他们已经演示了如何在服务器端访问html输入文本框值。你正在混合一个html控件和一个asp.net服务器控件。
这表示ASP.NET服务器控件: -
<asp:TextBox ID="myTextBox" runat="server"></asp:TextBox>
你可以在服务器端(.cs文件)访问它的值,如下所示: -
string vaue = myTextBox.Text;
另一方面,可以通过添加html input
属性将runat="server"
转换为服务器控件: -
<input type="text" id="txtName" name="Name" value="" />
在这种情况下,它是HtmlInputText
,你需要像这样访问它: -
string value = txtName.Value;
答案 2 :(得分:0)
使用:
string myInput = myTextBox.Text;
这将为您提供文本框中输入的所有文字
答案 3 :(得分:0)
获取javascript函数文本框的文本:
function GetValueOfmyTextBox()
{
var myTB = document.getElementById('<%= myTextBox.ClientID %>');
alert(myTB.value);
}