如果我对任务的值进行硬编码,则以下代码有效。这在现实世界中并不是很有用,所以我想传递一个文本框的值。不幸的是,我无法获得文本框的值,并将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>
答案 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() };