我正在尝试使用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"}
。
有人可以告诉这个新手为什么他在回调中得到完全错误的数据?
答案 0 :(得分:2)
您正在调用该函数,然后将返回值发送到getJSON
调用。使用不带参数的函数名称来发送函数引用而不是调用它。
在使用方法时,您需要使用proxy
,以便使用对象的上下文调用它:
$.getJSON(this.source, { term: this.getTerm() }, $.proxy(this.response, this));