typeahead.js:未捕获的TypeError:无法读取null的属性“length”

时间:2015-12-01 12:47:58

标签: javascript jquery typeahead

我查看了所有其他'length' of null个问题,但他们没有帮助我。

我正在使用YouTube教程使用typeahead.js将autosuggest实现到表单中,但它不起作用。 Chromes控制台推出:

Uncaught TypeError: Cannot read property 'length' of null

有人可以帮助我,指出我错在哪里。

这里有相关的html:

<form action="index.php" method="get" autocomplete="off">
    <input type="text" name="user" id="users">
    <input type="submit" value="Go">
</form>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="js/typeahead.js"></script>
<script src="js/global.js"></script>

和相关的js:

$(document).ready(function() {
    var users = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('username'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        remote: 'users.php?query=%QUERY'
    });

users.initialize(); 

    $('#users').typeahead({
        hint: true,
        highlight: true,
        //minLength: 2          
    }, {
        name: 'users',
        displayKey: 'username',
        source: users.ttAdapter()   // what is ttAdapter() ?
    });
});

"Uncaught TypeError" in Chromes Console

1 个答案:

答案 0 :(得分:0)

在YouTube教程评论中,有人指出了这一点:

  

当我替换时为我工作:

remote: 'users.php?query=%QUERY'

  

with:

remote: {
    url: 'users.php?query=%QUERY',
    wildcard: '%QUERY'
}

现在可行。