2011-04-09 81 views
0

我通过我的网页上的按钮获得了下面的函数触发器。Ajax调用传递一些参数

我需要将文本字段的值传递给ajax调用。我有下面的脚本,但没有发生。

function sentDateToServer(){ 
     var runDate = $('#rundate').html(); 
     $.ajax({ 
      type: 'GET', 
      url: '/clientsurvey/planner.html?runDate=' + runDate, 
      success: function(response) { 

      } 
      error: function(xhr, asdf,) { 

      } 
     }); 
+0

你期望发生的?为什么你将查询字符串传递给html?你的意思是.php? – Trevor 2011-04-09 03:46:51

回答

2

假设你真正的意思是“输入元素”当你说“文场”,那么你应该使用val()函数来获得它的价值,而不是html()这将返回嵌套的HTML内容(确实是有通常情况下没有输入元素)。

var runDate = $('#rundate').val(); 

不要忘记encodeURIComponent()它,或者更好,使用data选项$.ajax()设置。

+0

你可以给我一个例子,我不知道在成功范围内输入什么 – glenn 2011-04-09 02:54:36

+0

当服务器端成功完成处理ajax请求并返回响应时,您需要在客户端执行什么操作?只需将代码放在那里即可实现。或者如果你实际上不需要/想要处理任何成功/错误的情况下,那么只需删除这些处理程序。除此之外,你最初的问题是否解决?你的服务器端现在是否检索预期的参数? – BalusC 2011-04-09 02:56:28

+0

我们可以进入javascript聊天吗? – glenn 2011-04-09 02:58:13

0

首先,可能是因为成功回调关闭括号后需要逗号。也许因为这个逗号不存在,那么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 
     } 
    }); 
});