如何将文本框值传递给此$ .ajax()调用?

时间:2011-04-27 03:30:48

标签: asp.net ajax jquery

如果我对任务的值进行硬编码,则以下代码有效。这在现实世界中并不是很有用,所以我想传递一个文本框的值。不幸的是,我无法获得文本框的值,并将id =“txtTask”传递给查询字符串。传递硬编码值但是当我取消注释顶部inputData赋值并运行它时,查询字符串为空。

有什么建议吗?谢谢!

   function btnAddTask_onclick() {
                    //var inputData = { task: $("#txtTask").val() };
                    var inputData = { task: "hard-coded test data"};

                    $.ajax({
                        "url": "AddTask.aspx",
                        "type": "get",
                        "data": inputData, 
                        "success": function (response) {
                            alert(response);
                            $("body").append(response);

                        },
                        "error": function (response) {
                            alert("Error: " + response);
                        }
                    })
                }

这是标记......

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <h2>
        To-Do List
    </h2>
    <p>
        <asp:TextBox ID="txtTask" runat="server"></asp:TextBox>
        <input id="btnAddTask" type="button" value="button" onclick="btnAddTask_onclick()" />
    </p>
    <div id="tasks"></div>
</asp:Content>

1 个答案:

答案 0 :(得分:0)

由于这似乎是asp.net webforms,我会在文本框中使用ClientIDMode =“static”,或者只是定义一个类并使用该类作为选择器。我猜你是因为asp.net webforms id assignments而没有正确选择文本框。

<asp:TextBox ID="txtTask" runat="server" ClientIDMode="Static"></asp:TextBox>

如果您不使用.net 4.0,那么您需要将CSS类添加到文本框并按类名引用它,因为'ClientIDMode'是4.0功能。

<asp:TextBox ID="txtTask" runat="server" CssClass="myTaskClass"></asp:TextBox>

var inputData = { task: $(".myTaskClass").val() };