Ajax调用传递一些参数
问题描述:
我通过我的网页上的按钮获得了下面的函数触发器。Ajax调用传递一些参数
我需要将文本字段的值传递给ajax调用。我有下面的脚本,但没有发生。
function sentDateToServer(){
var runDate = $('#rundate').html();
$.ajax({
type: 'GET',
url: '/clientsurvey/planner.html?runDate=' + runDate,
success: function(response) {
}
error: function(xhr, asdf,) {
}
});
答
假设你真正的意思是“输入元素”当你说“文场”,那么你应该使用val()
函数来获得它的价值,而不是html()
这将返回嵌套的HTML内容(确实是有通常情况下没有输入元素)。
var runDate = $('#rundate').val();
不要忘记encodeURIComponent()
它,或者更好,使用data
选项$.ajax()
设置。
答
首先,可能是因为成功回调关闭括号后需要逗号。也许因为这个逗号不存在,那么ajax函数不知道如何关闭自己,因此jquery完全忽略了这个函数。
其次,我同意@ Trevor的关于使用/clientsurvey/planner.html?
作为您的url请求的混淆,这应该是php或foxpro什么的。如果它是这些语言之一,那么你甚至不需要扩展名,你可以做'/clientsurvey/planner?runDate='+runDate
,这应该工作。
第三,在成功之前将error
回调放在句法上更聪明,因为如果ajax函数抛出一个错误,那么在读取不会执行的函数时,jQuery会浪费内存和处理能力。
所以,你的声明更改为以下:
function sentDateToServer(){
var runDate = $('#rundate').html();
$.ajax({url: '/clientsurvey/planner?runDate=' + runDate,
type: 'GET',
error: function(xhr, asdf,){
alert(xhr + "\n\n" + asdf);
},
success: function(response){
//do something
}
});
});
你期望发生的?为什么你将查询字符串传递给html?你的意思是.php? – Trevor 2011-04-09 03:46:51