在typeahead上获取用户输入长度:已选中

时间:2014-04-15 20:42:07

标签: typeahead.js

我希望通过跟踪用户在选择结果之前输入的字符数来跟踪预先输入(以及我的内部评分算法)的效果。

.on(typeahead:selected, function(datum, ob){
  // get the length of the input query
});

这是我想要的结果:

INPUT QUERY      SELECTED         RESULT
-------------    --------------   ------
Michael          Michael Jordan   7
Stack            stackoverflow    5
Lar              Larry Bird       3

1 个答案:

答案 0 :(得分:0)

执行此操作的一种方法是修改typeahead.js中的_select方法。这是一种方式:

  _select: function select(datum) {
            //begin new code
            datum.special = this.input.getQuery();
            //end new code
            this.input.setQuery(datum.value);
            this.input.setInputValue(datum.value, true);
            this._setLanguageDirection();

            this.eventBus.trigger("selected", datum);
            this.dropdown.close();
            _.defer(_.bind(this.dropdown.empty, this.dropdown));
        },

然后你可以在所选的事件中调用它:

.on(typeahead:selected, function(datum, obj){
  console.log(obj.special.length);
});