$ .get()不起作用?

时间:2013-12-29 14:14:22

标签: javascript jquery

已更新!

之后的代码
   $.get(url, { id: id, action: action }, function(data) {

不开火?完整的方法如下。

   function modifyPermit(id, action) {
    var url = "ajax/permit_modify.aspx";
    $.get(url, { id: id, action: action }, function(data) {
        if (data == "SUCCESS") {
            // Update page
            $.get("ajax/permit_getall.aspx", function (data) {
                $("#ctl00_ContentPlaceHolder1_permitList").html(data);
            }).error(function(err) {
               alert(err);
            });

        } else {
            alert(data);
        } 
    });
}

使用.Net。

此致

罗伯特

2 个答案:

答案 0 :(得分:2)

您似乎在此处使用了错误的变量(您定义了url_mod但在您的AJAX请求中使用了url):

var url_mod = "ajax/permit_modify.aspx?id=" + id + "&action=" + action;
$.get(url, function(data) {

应该成为:

var url = "ajax/permit_modify.aspx?id=" + id + "&action=" + action;
$.get(url, function(data) {

此外,我不建议您为每个参数调用encodeURIComponent函数(这是您在第二个AJAX请求中忘记的方式),我建议您使用以下结构:

var url = 'ajax/permit_modify.aspx';
$.get(url, { id: id, action: action }, function(data) {

这样jQuery将负责生成正确编码的url。您的第一个AJAX请求中可以应用相同的概念。请注意如何将第二个参数传递给jQuery将用于构造正确URL的$.get函数键/值对。


更新:

在与OP进行离线聊天后,发现问题与他的问题中显示的AJAX代码无关,而是与他调用modifyPermit函数的方式有关。它位于按钮的onclick处理程序内,不返回false。这反过来触发了对服务器的完整回发,没有时间让AJAX请求执行。正确的解决方案是返回false以防止按钮的默认操作:

onclick="modifyPermit(1,'a'); return false;"

答案 1 :(得分:0)

@darin找到的修复程序很简单:只需添加return false;方法调用按钮后。

modifyPermit(1,'a'); return false;

非常感谢Darin帮助我解决这个问题的所有时间和精力。没有你,不能没有它!

/鲍勃