Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用JQuery从asp:textbox检索值_C#_Asp.net_Jquery - Fatal编程技术网

C# 使用JQuery从asp:textbox检索值

C# 使用JQuery从asp:textbox检索值,c#,asp.net,jquery,C#,Asp.net,Jquery,我在网页的表单中有几个asp:textbox控件,下面是一个片段。第一个是一个输入收件人的字段,另一个是一个较大的文本区域,收件人姓名应与其他一些文本一起加载到该区域 <asp:TextBox name="recipient" ID="recipient" class="inputBox" onChange="addNames()" runat="server" /> <asp:TextBox TextMode="MultiLine" name="usermessage" ID

我在网页的表单中有几个asp:textbox控件,下面是一个片段。第一个是一个输入收件人的字段,另一个是一个较大的文本区域,收件人姓名应与其他一些文本一起加载到该区域

<asp:TextBox name="recipient" ID="recipient" class="inputBox" onChange="addNames()" runat="server" />
<asp:TextBox TextMode="MultiLine" name="usermessage" ID="usermessage" class="usermessage" height="128" width="425px" runat="server"></asp:TextBox>
这很好地工作,消息显示出来。
当用户在另一个文本框中输入收件人的姓名或自己的姓名时,会触发addNames()。此函数用于将收件人的名称添加到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);
    }
问题是收件人和发件人这两个变量“未定义”

您好,未定义,
这是一条信息

亲切的问候,
未定义




实际问题:如果出现以下情况,从asp:textbox检索值的正确代码是什么

var recipient = $(".recipient").val();  
不起作用

html中的输出如下所示:

<input name="ctl00$contentPlaceHolderRightColumn$recipient" type="text" id="ctl00_contentPlaceHolderRightColumn_recipient" name="recipient" class="inputBox" onChange="addNames()" />


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

我认为JQuery选择器会返回一个对象列表。您是否尝试过:

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

那么这个呢:

风险值接收人= $(“.recipient:first”).val()


它还有一个很好的优势——在第一次匹配时会停止。

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

例如


就我所知,你在做什么

var recipient = $(".recipient")
将选择具有一个收件人类的所有dom元素。您的输入框有一个“inputBox”类

您需要使用#

因此:

但是您使用的是ASP.NET控件,它为它提供了在服务器上生成的唯一ID,因此它是唯一的。(在您的情况下,它是ctl00\u contentPlaceHolderRightColumn\u收件人)

要选择,您需要执行以下操作

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

-在ASP.NET中编辑掉一些语法错误,您需要这样写:


var recipient=$(“#”)val()我猜asp.net HTML控件必须具有ClientID=“recipient”属性才能使用客户端中的客户端id访问控件。或者我不知道



试试看,这应该行得通。

通过它,您还可以获得asp按钮或任何控件

var txt_recipient = document.querySelector("input[id*='recipient']");
alert(txt_recipient.Value);
如果客户端中有多个id相同的控件,也可以尝试使用
querySelectorAll()

jQuery等价于

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

这是一个很好的想法,但遗憾的是它不起作用。FireBug说:“$(“.recipient”)[0]未定义”。不,仍然没有运气:(这是一个选择器问题,这一点很清楚。如果我输入$('.bogus').val();,无论前面是否有点,我都会得到相同的结果。“Hello undefined,”。你能检查并粘贴在浏览器中看到的生成的HTML吗(源代码)?检查name属性是否未更改为通常的“ctrl00_uu”ASP.NET方式。您使用的是什么jQuery版本和浏览器?有几次我在jQuery 1.2x中遇到问题(错误?),当时我无法使用控件id作为选择器,不得不使用此“$('[id=“control_id”]”。请尝试$('[name=“recipient”])或$('[name^=“recipient”])如果ASP.NET更改了名称。是,生成的输出将更改为“ctl00”等。但是您的$(“[name=”recipient“]”)没有更改任何内容…我丢失了。那么,您更改的控件名称仍应以“recipient”结尾,请尝试“name$=”recipient”选择器。它将选择所有具有以“recipient”结尾的“name”属性的控件。请参阅docs.jquery.com/Selectors以获取所有可用的选择器。遗憾的是,没有用。我仍然将“未定义”作为输出。当然:您是否尝试使用ClientID集和$(“#收件人”),顺便说一句?这是一个编辑。如果这不起作用,恐怕我已经没有想法了。另外,可能值得使用.innerHTML而不是.val,因为我不确定文本框的值是否会被更新。是的,我做了。:)这让我们两个人,因为没有想法。这让我走上了正确的道路。两种解决方案:var recipient=$(“#”)val();和var recipient=$(“.recipient”).val();[将类“recipient”添加到textbox控件中]已工作。:)谢谢啊。我需要自己阅读jQuery文档,我怎么会错过选择器中的“.”。好地方。
var recipient = $("#<%=recipient.ClientID%>")
var txt_recipient = document.querySelector("input[id*='recipient']");
alert(txt_recipient.Value);
$("input[id*='recipient']").val()