jQuery autocomplete输入密钥 - 多个事件触发

时间:2013-08-19 15:59:59

标签: jquery events firefox autocomplete

我有一个显示项目列表的自定义自动完成下拉列表。用户可以从下拉列表中选择,也可以在文本字段中输入一些文本并按Enter键。我希望能够区分用户从自动完成下拉列表中选择项目并按下输入vs命中输入而不从下拉列表中选择项目。目前在下面显示的代码框架中,我看到在firefox中,当有人使用键盘选择下拉项并按下回车时,自动完成中的选择功能首先触发,然后是evtHandlers中存在的回车键操作,即。 ajaxRedirect函数覆盖自定义自动完成中select函数的结果。当有人使用键盘从下拉列表中选择并按下回车键时,我想阻止执行ajaxRedirect。注意:IE和Chrome似乎处理得很好,从自动完成下拉列表中选择并按下回车时,它不会触发ajaxRedirect函数。

Plugin.prototype = {
    init: function (opts) {
        this.fireAutoComplete(opts);
        this.evtHandlers(opts);
    }
    evtHandlers: function (opts) {
        $("#" + opts.currentEl).on('keypress', function (e) {
            var code = (e.keyCode ? e.keyCode : e.which);
            if (e.which == 13) {  
                self.ajaxRedirect(opts, $(this).val());
            }
        });
    }

    fireAutoComplete: function (opts) {

        $("#" + opts.currentEl).s4_autocomplete({
            select: function (src, id, fields) {

                //fire the function on selecting the dropdown item
            }
        });

    }

0 个答案:

没有答案