Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery自动完成输入键-多事件触发_Jquery_Events_Firefox_Autocomplete - Fatal编程技术网

jQuery自动完成输入键-多事件触发

jQuery自动完成输入键-多事件触发,jquery,events,firefox,autocomplete,Jquery,Events,Firefox,Autocomplete,我有一个自定义的自动完成下拉列表,显示项目列表。用户可以从下拉列表中选择,也可以在文本字段中输入一些文本,然后按enter键。我希望能够区分用户从“自动完成”下拉列表中选择项目和按enter键与不从下拉列表中选择项目而按enter键。目前,在下面显示的代码框架中,我看到在firefox中,当有人使用键盘选择下拉项并点击enter键时,自动完成中的select函数首先启动,然后是EVTANDLERS中的enter键操作,即AJAXDirect函数,该函数覆盖自定义自动完成中select函数的结果。

我有一个自定义的自动完成下拉列表,显示项目列表。用户可以从下拉列表中选择,也可以在文本字段中输入一些文本,然后按enter键。我希望能够区分用户从“自动完成”下拉列表中选择项目和按enter键与不从下拉列表中选择项目而按enter键。目前,在下面显示的代码框架中,我看到在firefox中,当有人使用键盘选择下拉项并点击enter键时,自动完成中的select函数首先启动,然后是EVTANDLERS中的enter键操作,即AJAXDirect函数,该函数覆盖自定义自动完成中select函数的结果。我想防止当有人使用键盘从下拉菜单中选择并点击enter键时执行ajaxRedirect。注意:IE和Chrome似乎处理得很好,当从autocomplete下拉菜单中选择并点击enter时,它不会启动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
            }
        });

    }