使用JQuery从asp:textbox中检索值

我在网页上的表单中有一些asp:文本框控件,下面是一个片段。 第一个是输入收件人的字段,另一个是应该加载收件人名称的较大文本区域,以及其他一些文本。

  

使用此代码的JQuery将标准消息加载到第二个文本框中:

 $(".usermessage").val("Hello etc"); 

这很好用,显示的是消息。
当用户在其他一个文本框中输入收件人的姓名或他自己的名字时,会触发addNames()。 此function将收件人的名称添加到usermessage框中的标准消息。

 function addNames() { //update textbox var recipient = $(".recipient").val(); var sender = $(".name").val(); $(".usermessage").val("Hello " + recipient +", \nThis is a message. \n\rKind regards, \n" + sender); } 

问题是收件人发件人这两个变量是“未定义的”。

您好undefined,
这是一条消息。

亲切的问候,
未定义

实际问题:如果是这样,从asp:textbox中检索值的正确代码是什么

 var recipient = $(".recipient").val(); 

不起作用?

html中的输出如下:

  

我正在使用JQuery v1.3.2,Firefox v3.5.3。

据我所知

 var recipient = $(".recipient") 

将使用CLASS的收件人选择所有dom元素。 您的输入框有一个“inputBox”类。

您需要使用#通过其ID进行选择

所以:

 var recipient = $("#recipient") 

但是您使用的是ASP.NET控件,它在服务器上生成一个唯一的ID,因此它是唯一的。 (在你的情况下,它是ctl00_contentPlaceHolderRightColumn_recipient)

选择你需要做的

 var recipient = $("#<%=recipient.ClientID%>") 

– 编写了一些语法错误

如果你设置asp文本框的clientID,你应该能够以与你相同的方式在JQuery中使用它,但是使用哈希而不是点。

例如

 ClientID = "recipient" then var recipient = $('#recipient').innerHTML() or var recipient = $('#recipient').text() 

通过这个你也可以获得asp按钮或任何控制。

 var txt_recipient = document.querySelector("input[id*='recipient']"); alert(txt_recipient.Value); 

如果在客户端有多个具有相同id的控件,也可以尝试querySelectorAll()

jQuery Equalent是

 $("input[id*='recipient']").val() 

我认为jQuery选择器会返回一个对象列表。 你有没有尝试过:

 var recipient = $(".recipient")[0].val(); 

UPDATE

那么这个怎么样:

var recipient = $(“。recipient:first”)。val();

它有一个很好的优势 – 将在第一场比赛中制动。

我想asp.net HTML控件必须具有ClientID =“recipient”属性才能使用客户端中的客户端ID访问控件。 或者我不知道!

  

试试这应该工作。

在ASP.NET中,您需要以这种方式编写:

 var recipient = $("#<%=recipient.ClientID%>").val();