Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 打字机不工作_Javascript_Jquery_Model View Controller_Typeahead - Fatal编程技术网

Javascript 打字机不工作

Javascript 打字机不工作,javascript,jquery,model-view-controller,typeahead,Javascript,Jquery,Model View Controller,Typeahead,我对Typeahead相当陌生,无法使用callback。抱歉,如果已经问过这个问题,我在搜索时找不到确切的问题 如果记录只是来自带有字符串的变量,而不是来自数据库,我让Typeahead工作。我不确定如何正确编写回调代码 我们正在使用MVC6,看起来这是typeahead.js 0.11.1 工作原理: var records = [ "Alabama", "Alaska", "Arizona" . . .]; var substringMatcher1 = function (record

我对Typeahead相当陌生,无法使用callback。抱歉,如果已经问过这个问题,我在搜索时找不到确切的问题

如果记录只是来自带有字符串的变量,而不是来自数据库,我让Typeahead工作。我不确定如何正确编写回调代码

我们正在使用MVC6,看起来这是typeahead.js 0.11.1

工作原理:

var records = [ "Alabama", "Alaska", "Arizona" . . .];

var substringMatcher1 = function (records) {
    return function findMatches(searchString, callback) {

        var matches, substringRegex;
        matches = [];
        substrRegex = new RegExp(searchString, 'i');

        $.each(records, function (index, record) {
            if (substrRegex.test(record)) {
                matches.push(record);
            }
        });

        callback(matches);
    };
};

$('#field1').typeahead({
    hint: true,
    highlight: true,
    minLength: 3
},
{
    name: 'records',
    source: substringMatcher1(records)
});
什么不起作用:

var substringMatcher2 = function (records) {
    return function findMatches(searchString, callback) {

        $.ajax({
            url: "/Test/GetRecords/",
            cache: false,
            data: { searchString: searchString },
            type: "POST",
            success: function (data) {

                callback(data);  
            },
            error: function (reponse) {
                alert("error : " + reponse);
            }
        });
    };
};

$('#field2').typeahead({
    hint: true,
    highlight: true,
    minLength: 3
},
{
    name: 'records2',
    source: substringMatcher2()
});
Test/GetRecords根据searchString正确返回过滤记录(字符串列表),但页面上不显示任何内容。我已调试,数据已正确填充。(数据=[New Jersey,New York,…]当searchString为“New”时)

我错过了什么?这种情况可能发生吗

任何帮助都将不胜感激


提前谢谢

这是更新后的代码,使它适合我,以防对其他人有所帮助:

var substringMatcher2 = function (records) {
return function findMatches(searchString, processSync, processAsync) {

    $.ajax({
        url: "/Test/GetRecords/",
        cache: false,
        data: { searchString: searchString },
        type: "POST",
        success: function (data) {

            processAsync(data);  
        },
        error: function (reponse) {
            alert("error : " + reponse);
        }
    });
};

})

这是更新后的代码,使它适合我,以防对其他人有所帮助:

var substringMatcher2 = function (records) {
return function findMatches(searchString, processSync, processAsync) {

    $.ajax({
        url: "/Test/GetRecords/",
        cache: false,
        data: { searchString: searchString },
        type: "POST",
        success: function (data) {

            processAsync(data);  
        },
        error: function (reponse) {
            alert("error : " + reponse);
        }
    });
};

})

见第271314页。谢谢你的链接。我看了大多数答案,似乎我在做类似的事情,所以我真的不知道为什么它不起作用。您能给我指出一个您认为有帮助的特定答案吗?
callback
需要一个具有
value
属性的对象数组,其值为单个搜索结果gues271314。对我有效的是使用异步源参数。我将其更改为“findMatches(searchString、processSync、processAsync)”,并将“回调(数据)”更改为“processAsync(数据)”它成功了!非常感谢!请参阅guest271314。感谢链接。我查看了大多数答案,似乎我正在做类似的事情,所以我不知道为什么它不起作用。您能给我指出一个您认为有用的特定答案吗?
回调
需要一个对象数组,该数组具有
属性和value是一个单独的搜索结果UES271314。对我有效的是使用异步源参数。我将其更改为“findMatches(searchString,processSync,processAsync)”,并将“callback(data)”更改为“processAsync(data)”,并且成功了!非常感谢!