繁体   English   中英

getJSON只返回一个HTMLCollection

[英]getJSON only returning a HTMLCollection

我正在尝试使用getJSON (类似于jquery.ui.autocomplete )创建电子邮件有效性(即,如果电子邮件尚不存在,则检查数据库)。 但是,从回调接收的数据似乎只是当前页面的站点标题,而不是InitSource-function调用的页面。 (我已经检查过了,并且正确地被调用了)。
有人可以告诉我出了什么问题,为什么我得到一个HTMLCollection而不是正确的JSON

这是代码:

$.fn.Functions = {
    InitSource: function () {   
        $.getJSON(this.source, { term: this.getTerm() }, this.response(data));
    },  
    onChange: function () {   
        this.InitSource();
    },  
    response: function (data) {   
        alert(data.result);
    },  
    getTerm: function () {   
        var key = $('.' + this.selector).val();
        if (key.length > 0) return key;
    }   
};

this.source是一个相对路径: /EmailCheck.aspx
并返回单个值: {"result" : "true"}

有人可以告诉这个新手他为什么在回调中得到完全错误的数据?

您正在调用该函数,然后将返回值发送到getJSON调用。 使用不带参数的函数名称来发送函数引用而不是调用它。

在使用方法时,需要使用proxy以便使用对象的上下文调用它:

$.getJSON(this.source, { term: this.getTerm() }, $.proxy(this.response, this));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM