获取文本框文本,javascript 已更改 [重复]

Posted

技术标签:

【中文标题】获取文本框文本,javascript 已更改 [重复]【英文标题】:Get Textbox Text, that javascript has changed [duplicate] 【发布时间】:2013-06-22 21:36:23 【问题描述】:

我有一个文本框,我根据 DropDownList 中选择的内容更改值。 到目前为止一切顺利。

但是,当我想让该文本在其后面编码时,什么也得不到。 这是因为服务器文本框控件没有改变它的状态或其中的信息。(我知道问题,而不是解决方案)

问题是,如何在代码隐藏中获取使用 javascript 更新的文本? (我将在下面提交一个代码示例) (注意:这不是我的代码,它只是一个简化的例子)

<asp:Panel ID="AnswerPanel" runat="server" >
   <asp:TextBox ID="tbxExample" runat="server" ></asp:TextBox>                
</asp:Panel>
<asp:Button ID="btnSend" onClientClick="Example" runat="server" Text="Send" />

jquery:

function Example
    $('#tbxExample').val("Test");

代码隐藏

string ex = tbxExample.Text; // I want it to say "Test", but it comes out as ""

【问题讨论】:

是类型错误,您忘记了函数Example 上的() 吗? 【参考方案1】:

您可以使用 ASP.NET 隐藏字段对此稍作修改。您可以创建一个存储隐藏字段的 JS 变量,分配值,然后在服务器端拉取该值:

创建一个带有 ID 的隐藏字段(在本例中,ID 为hiddenTest):

JS:

$hiddenField = $("#<%= hiddenTest.ClientID %>");
$('#<%=tbxExample.ClientID%>').blur(function() 
    $hiddenField.val(this.value);
);

您现在应该能够访问后面代码中的隐藏字段,并且它应该具有正确的值。

【讨论】:

很方便!我想我现在就让它工作!谢谢!【参考方案2】:

asp.net 的渲染 id 与您使用编码的不同,您可以使用 .ClientID 获取它:

$('#<%=tbxExample.ClientID%>').val("Test");

【讨论】:

我认为他希望反过来,从客户端到服务器。 @HanletEscaño 是的,但要使其正常工作,从客户端使用 jQuery 更改值必须具有正确的文本框 id 是的,你说得对。 @J.Olsson 在您更改它并进行回发的那一刻,您必须拥有代码背后的价值,除非您以某种方式在代码背后更改它(例如,您没有使用 IsPostBack)。 @J.Olsson,那是你应该在帖子中提到的,你正在使用 UpdatePanel 和 ScriptManager :)

以上是关于获取文本框文本,javascript 已更改 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

easyui获取datagrid选中行的文本框值(已更改)

如何检测文本框的内容已更改

使用javascript重命名输入中的文本(每点更改空间)

更改文本框Javascript的单个值

javascript:在用户键入或更改文本框值时忽略无效输入[重复]

更改文本框的值,与另一个具有比率的文本框值相比