【问题标题】:Run function right after the input changes [duplicate]输入更改后立即运行功能[重复]
【发布时间】:2012-12-31 16:57:57
【问题描述】:

可能重复:
bootstrap-typeahead.js add a listener on select event

我正在使用 Twitter Bootstrap 的 typeahead 功能,我想使用 .on('change', function(){...}),但我的问题是,事件在输入值实际更改为所选值之前触发,并且在调用该函数时,函数内部的$(this).val() 返回更改前的值。该事件会触发两次,但只有第二次会触发。

我需要一种方法来运行该函数,以便它返回选定的值,并且只运行一次。

jsFiddle

【问题讨论】:

    标签: javascript jquery input twitter-bootstrap bootstrap-typeahead


    【解决方案1】:

    使用更新器属性:

    http://jsfiddle.net/ZUhFy/10/

    .typeahead({
            source: namelist,
            updater: function(item) {
                $('#log').append(item + '<br>');
                return item;
            }
        });
    

    updater 返回选中项 用于返回选中项的方法。 接受单个参数,项目并具有预先输入的范围 实例。 http://twitter.github.com/bootstrap/javascript.html#typeahead

    【讨论】:

    • 太棒了!我想我没有正确理解文档的那部分......
    【解决方案2】:

    试试

    $('#findname').on('keyup', function() {...});
    

    【讨论】:

      【解决方案3】:

      尝试使用keyup

      .on('keyup', function(){...})
      

      【讨论】:

      • Keyup 不起作用,因为我只想在用户决定他们选择的内容时运行该功能。每次他们输入内容时都会触发。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 2014-03-04
      • 2019-11-27
      相关资源
      最近更新 更多