【问题标题】:twitter Typeahead input goes undefined when selecting选择时twitter Typeahead输入未定义
【发布时间】:2015-06-11 14:02:02
【问题描述】:

我的 typeahead 工作正常,但是当我选择一个条目时,输入充满了“未定义”

知道为什么吗?是否有“选择”事件或我可以用来用当前选择的值填充输入的东西?我没有在网上找到任何关于这种行为的信息。 这是预先输入的声明:

$('.receivers-input').typeahead({
        minLength: 0,
    }, {
        source: function (query, cb) {
            var Request = $.ajax({
                methode: "POST",
                url: "MessagingService.svc/UserAutocomplete",
                dataType: "json",
                contentType: "application/json; charsert=utf-8",
                data: JSON.stringify({ "inputString": query })
            }).done(function (Response) {
                if (!Response.UserAutocompleteResult.success) {
                    if (!Response.UserAutocompleteResult.message)
                        return;
                    ErmesManager.notify(Response.UserAutocompleteResult.message, null);
                    return;
                }
                cb(Response.UserAutocompleteResult.d);
            });
        },
        templates: {
            suggestion: function (suggestion) {
                return '<p>' + suggestion + '</p>';
            }
        }
    }).on('typeahead:selected', function (event, data) {
        $('.receivers-input').val('');
        ComputeToken(data, true);
    }).on('blur', function (event, data) {
        $('.receivers-input').val(data);
    });
}

【问题讨论】:

  • 你能发布一些代码吗?
  • 我已经用 typeahead 声明进行了编辑,不知道还有什么用处
  • 您是否等待搜索引擎初始化?为什么你不使用猎犬?
  • 因为我使用的引导程序版本不允许我这样做。我对版本没有任何权力。一切正常。当我选择一个条目时 typeahead:selected 是触发器,我可以使用数据获取条目的值。

标签: jquery twitter-bootstrap typeahead


【解决方案1】:

添加on('typeahead:cursorchanged', function (event, data) {}); 即可。 另外,因为我使用placeholder 显示有点乱。我通过在 tt-hint 类上添加 visibility: hidden 来清理它。

这里是完整的修改:

CSS:

.tt-hint {
    visibility: hidden;
}

Javascript:

 ...
}).on('typeahead:selected', function (event, data) {
    $('.receivers-input.tt-input').val('');
    ComputeToken(data, true);
}).on('blur', function () {
    $('.receivers-input.tt-input').val('');
}).on('typeahead:cursorchanged', function (event, data) {
    $('.receivers-input.tt-input').val(data);
});

cursorchanged 事件没有记录在案 here,如果有人有其他文档来源,我会很高兴拥有它们。

我要补充一点,这个问题和答案是在旧的引导版本上下文中。使用最新版本(目前)typeahead:select 也可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-21
    • 2014-03-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    相关资源
    最近更新 更多