ajax中的非法调用错误(Jquery 1.7.1)

时间:2012-01-28 20:31:46

标签: jquery

我正在尝试使用jquery

发布ajax请求
var peName = document.getElementById("peName").value;
     var peSubName = document.getElementById("peSubName").value;
     var peDesc = document.getElementById("peDesc").value;
     var pePrice = document.getElementById("pePrice").value;
     var peCat = document.getElementById("peCat");   
     var pecatId = peCat.options[peCat.selectedIndex].value;
     var radioActive = getRadioValue("proeActive");
     var radioSpicy = getRadioValue("proeSpicy");
     var radioVeg = getRadioValue("proeVeg");
$.post("/product/saveEditProduct",
            {  
                peId    :   peId,
                pecatId :   pecatId,
                peName  :   peName,
                peSubName  : peSubName,
                peDesc : peDesc,
                pePrice : pePrice,
                radioActive : radioActive,
                radioSpicy : radioSpicy,
                radioVeg : radioVeg,
              },

但我在firebug控制台中遇到以下错误。

Uncaught TypeError: Illegal invocation
jQuery.extend.param.add         jquery-1.7.1.js:7601
buildParams             jquery-1.7.1.js:7658
buildParams             jquery-1.7.1.js:7653
buildParams             jquery-1.7.1.js:7653
jQuery.extend.param         jquery-1.7.1.js:7621
jQuery.extend.ajax          jquery-1.7.1.js:7467
jQuery.each.jQuery.(anonymous function) jquery-1.7.1.js:7106
editSaveProduct             order-1.0.js:682

我是jquery的新手并且不知道它是什么?

2 个答案:

答案 0 :(得分:20)

我是新手,但当我做了类似以下的事情时,这个错误发生在我身上:

// the following will *error*
var element = $("#elementId");
$.post("/foo/bar/", { xxx : element });

只要你提供$.post以外的string,JS错误。即,peIdpecatId等必须都是字符串,而不是jQuery对象。

答案 1 :(得分:1)

好的,所以你似乎错过了函数调用闭包括号。

$.post("/product/saveEditProduct",
    {  
        peId    :   peId,
        pecatId :   pecatId,
        peName  :   peName,
        peSubName  : peSubName,
        peDesc : peDesc,
        pePrice : pePrice,
        radioActive : radioActive,
        radioSpicy : radioSpicy,
        radioVeg : radioVeg,
     });