簡體   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