将输入文本值传递给ajax调用
问题描述:
我必须将输入文本中输入的字符串传递给通过jquery ajax调用的服务器方法。但它没有经过。可以请有人告诉我我在这里做错了什么。下面是代码:将输入文本值传递给ajax调用
$.ajaxSetup({ cache: false timeout: 1000000}); function concatObject(obj) { strArray = []; //new Array for (prop in obj) { strArray.push(prop + " value :" + obj[prop]); } return strArray.join();} //var Eid = "stephen.gilroy1"; function testCAll() { //var ntid = $('#Eid').val(); $.ajax({ type: "POST", url: "Testing.aspx/SendMessage", //data: "{'ntid':'stephen.gilroy1'}", //working data: "{'ntid': $('#Eid').val()}", contentType: "application/json; charset=utf-8", dataType: "json", success: function(result) { alert(result.d); resultData = eval("(" + result.d + ")"); $("#rawResponse").html(result.d); //$("#response").html(resultData.sn); }, error: function(result) { alert("jQuery Error:" + result.statusText); } });}$.ajaxSetup({
cache: false
//timeout: 1000000
});
function concatObject(obj) {
strArray = []; //new Array
for (prop in obj) {
strArray.push(prop + " value :" + obj[prop]);
}
return strArray.join();
}
//var Eid = "stephen.gilroy1";
function testCAll() {
//var ntid = $('#Eid').val();
$.ajax({
type: "POST",
url: "Testing.aspx/SendMessage",
//data: "{'ntid':'stephen.gilroy1'}", //working
data: "{'ntid': $('#Eid').val()}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
alert(result.d);
resultData = eval("(" + result.d + ")");
$("#rawResponse").html(result.d);
//$("#response").html(resultData.sn);
},
error: function(result) {
alert("jQuery Error:" + result.statusText);
}
});
}
以上是js文件和下面是它的aspx文件:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Testing.aspx.cs" Inherits="Testing" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="jquery.js" type="text/javascript"></script>
<script src="Testing.js" type="text/javascript"></script>
<script src="json2.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
Employee's NTID: <input type="text" id = "Eid" name="Employee_NTID" />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<br />
<br />
<input type="button" onclick="testCAll()" value = "Search"/>
<div id="rawResponse"></div>
<hr />
<div id="response"></div>
</div>
</form>
</body>
</html>
答
你需要采取data: "{'ntid': $('#Eid').val()}",
出报价。
编辑看看here,在你的问题的代码正确地尝试发送ajax请求。
EDIT 2在这里你去:
$.ajax({
type: "POST",
url: "Testing.aspx/SendMessage",
data: { ntid: $('#Eid').val()}, // Notice the lack of quotes
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
console.log(result.d);
resultData = eval("(" + result.d + ")");
//$("#rawResponse").html(result.d);
},
error: function(result) {
alert("jQuery Error:" + result.statusText);
}
});
答
数据没有格式化的权利。您可以在ajax()函数之外创建json对象,以便于管理。
var keyvalue = {
ntid : $('#Eid').val()
};
$.ajax({
type: "POST",
url: "Testing.aspx/SendMessage",
//data: "{'ntid':'stephen.gilroy1'}", //working
data: keyvalue,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(result) {
alert(result.d);
resultData = eval("(" + result.d + ")");
$("#rawResponse").html(result.d);
//$("#response").html(resultData.sn);
},
error: function(result) {
alert("jQuery Error:" + result.statusText);
}
});
答
谢谢你们! 其现在的工作,通过使用这一行:
data: "{'ntid': '"+$('#Eid').val()+"'}",
谢谢,但问题仍然在这里 – amby 2010-04-09 03:12:24
@amby:具体是什么不工作。正如我提供的链接所显示的那样,AJAX调用正在正确触发。 – R0MANARMY 2010-04-09 04:12:59
我知道,我的代码成功发送Ajax请求,因为我试过只发送简单的字符串像 数据:“{‘NTID’:‘stephen.gilroy1’}”, 它工作得很好,但是当我尝试发送输入文本框字符串,然后它给了jQuery:内部服务器错误 – amby 2010-04-09 04:13:12