Typeahead minlengh 0建议不显示猎犬

时间:2014-05-14 06:52:20

标签: javascript jquery autosuggest typeahead.js typeahead

我正在进行自我提交任务,我有一个要求,如果先行建议文本框为空,则显示建议列表上的默认选项,如下面的jsfiddle

http://jsfiddle.net/5xxYq/

此示例完美运行。但是我从远程使用猎犬检索了一个建议清单,但我的代码下面没有列出工作:

var sos_adapt = new Bloodhound({
                    datumTokenizer: function(d) {
                        return Bloodhound.tokenizers.whitespace(d.value);
                    },
                    queryTokenizer: Bloodhound.tokenizers.whitespace,
                    remote: {
                        url: 'appsearch?ty=so&cid=%CID&query=%QUERY',
                        replace: function(url, query) {
                            return url.replace('%QUERY', query).replace('%CID', customer_id);
                        },
                        filter: function(sos) {

                            return $.map(sos, function(sos) {
                                return {
                                    so_desc: sos.so_desc,
                                    so_no: sos.so_no,
                                    so_details: sos.so_no + " : " + sos.so_desc,
                                    customer_id: sos.customer_id,
                                    customer_details: sos.customer_id + " : " + sos.customer_name
                                };
                            });
                        },
                        ajax: {
                            global: false,
                            beforeSend: function(xhr)
                            {
                            }
                        }
                    }
                });

                //initialize the bloodhound suggestion engine
                sos_adapt.initialize();

                $('#so_details').typeahead(null, {
                    displayKey: 'so_no',
                    source: sos_adapt.ttAdapter(),
                    minLength: 0,
                    templates: {
                        empty: [
                            '<div class="sug_items">',
                            'unable to find any so#!',
                            '</div>'
                        ].join('\n'),
                        suggestion: Handlebars.compile([
                            '<div class="sug_items"><p class="repo-language">SO# : {{so_no}}</p>',
                            '<p class="repo-name">{{so_desc}}</p></div>'
                        ].join(''))
                    }
                });

当用户在文本框中键入文本时,我的代码工作正常。但是,当用户关注空文本框时,猎犬不会发送远程请求建议。但是,我尝试在下面的预先输入文本框上的焦点显示建议列表中的代码:

$("#so_details").on("click", function() {
                    var ev = $.Event("keydown");
                    ev.keyCode = ev.which = 40;
                    $(this).trigger(ev);
                    return true;
 });
从上面的jsfiddle示例中选择此代码,任何人都可以指导我如何做到这一点?任何帮助将不胜感激。

0 个答案:

没有答案