簡體   English   中英

typeahead.js遠程不返回任何內容

[英]typeahead.js remote returns nothing

我似乎無法讓typeahead.js的遠程功能正常工作。 我正在發布代碼以開始:

$(document).ready(function() {
    var locations = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: baseUrl + 'restaurants/fetchZIP/%QUERY'
    });

    $('#location').typeahead({
        hint: true,
        highlight: true,
        minLength: 1,
        source: locations.ttAdapter()
    });
    /*$('#location').keyup(function() {
        $.ajax({
            method: 'POST',
            dataType: 'json',
            url: baseUrl + 'restaurants/fetchZIP/',
            data: $('#add_restaurant').serialize(),
            success: function(data) {
                console.log(data);
            }
        });
    });*/
});

這是文件,我在該文件中執行Bloodhound遠程操作,並在所需的輸入字段上使用typeahead。 注釋部分是一個測試,以確保我的數據庫語句是否正確。 我不得不重新編寫以下代碼以進行測試,但基本上這只是從GET到POST的切換:

public function fetchZIP($query)
{
    $cantons = DataLoc::find(array('zip LIKE' => '%'.$query));
    echo json_encode($cantons);
}

這是“ restaurants / fetchZIP /”頁面(用CodeIgniter編寫)的操作。 因此,我真的不知道發生了什么,因為我無法在typeahead()函數中使用console.log(),所以我希望任何人都可以帶領我回到正確的方向。

首先,您必須在定義它后立即通過locations.initialize()使用初始化獵犬。

這是初始化輸入的方式

提前輸入(選項,[*數據集])

您已將源(或數據集)包含在選項中,因此請嘗試這樣的操作

$('#location').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},{
    source: locations.ttAdapter()
});

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM