类型错误:';单击';对未实现接口HTMLElement的对象调用


TypeError: 'click' called on an object that does not implement interface HTMLElement

我有一些javascript,它将数据发送到调用php页面的函数,但我遇到了一个错误,找不到任何信息。postData()调用位于另一个普通javascript函数的中间。但是我无法将数据提交到php页面。

function postData() {
var postdataURL = "path/to/php/page.php";
    $.post (
        postdataURL, {
        "formid":5,
        "clientid":1,
        "userid":1,
        "level":mycat,
        "extra":mytimer,
        "pid":pid
        },
        function () {});
}

查看变量mycat,mytimer,pid可能是一个jQuery对象。这意味着你竞选了

mycat = $('#cate')

如果这是真的,你只需要修复

mycat = $('#cate').val()

或者某些代码获得了真正的价值。

从属性的名称中删除"

$.post (
    postdataURL, {
    formid:5,
    clientid:1,
    userid:1,
    level:mycat,
    extra:mytimer,
    pid:pid
    },
    function () {});

并添加

alert("Got called"); 

之后

function postData() { 

以确保该函数被调用

我在像您一样执行jQuery$.ajax()调用时遇到了这个问题。显然(在我的案例中),它是由引用一个不在范围内且未定义的变量引起的。例如,在您的代码中:

    "level":mycat,
    "extra":mytimer,
    "pid":pid

如果mycat、mytimer或pid为null,并且您有同样的问题,那就可以了

在我的案例中,出现了与@user3740976相同的问题。我在url中放入了一个未定义的参数。

$.ajax({
     type: requestType,
     url: url,       
     dataType: dataType,
     data: dataParams,
 ...

其中dataParams是

 {"title":{},"iSBN":"111","partNumber":"3332","bookCategory":"1"}

标题未定义。