【问题标题】:How to stop event Enter keyCode (13), then execute tab keyCode(9)如何停止事件输入keyCode(13),然后执行tab keyCode(9)
【发布时间】:2016-08-04 16:09:22
【问题描述】:

我有一个组合框,当输入数据时,组合框搜索数据然后单击或按向下箭头然后输入 / 选项卡以选择该选项,输入 keyCode(13) 仅在组合框中工作,如果数据焦点但 Tab keyCode(9) 工作/ 选择没有焦点的选项,但我在组合框中找不到如何聚焦

这是我的组合框代码:

$('#ManifestDetail'+i+'AwbNumber').combobox({});

这是我的 html 表单代码:

<select id="ManifestDetail0AwbNumber" onchange="completeData(0)" name="data[ManifestDetail][0][awb_number]" style="display: none;"> <option value="">-- Select Awb --</option> <option value="209468">0164914</option> <option value="209461">0164931</option> </select><input class="ui-autocomplete-input ui-widget ui-widget-content ui-corner-left" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true">

如果可能,我可以在我的代码中的组合框 jQuery 中设置自动对焦吗?.. 如果不是,我如何将 enter keyCode(13) 设置为 tab keyCode(9),所以当我按下 enter jQuery 时执行 tab keyCode(9 )。

我已经尝试过使用此代码:

$('.ui-autocomplete-input').keypress(function(e){
                if (e.keyCode == 13){
                    e.preventDefault();

                    var ne = new jQuery.Event("keyup");
                    ne.which = 9;
                    $(e.target).trigger(ne);
                }
            });

提前致谢。

【问题讨论】:

    标签: javascript jquery combobox event-handling keyboard-events


    【解决方案1】:

    你为什么不直接关注组合框?

    $('.ui-autocomplete-input').keypress(function(e){
         if (e.keyCode == 13){
            e.preventDefault();
            $('yourComboBoxSelector').next().find('input').focus();
         }
    });
    

    【讨论】:

    • 我尝试使用.trigger('focus'),但是因为preventDefault(),什么都没有发生
    • e.preventDefault();只是在这里禁用按键事件的默认行为,你能告诉我们html吗,不确定什么元素必须是焦点
    • :(不工作,我的代码有什么问题,$('yourComboBoxSelector') 意思是 $('#ManifestDetail'+i+'AwbNumber') 对吗?
    • 是的,但是对于您的测试,请直接执行 $('#ManifestDetail0AwbNumber')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-17
    相关资源
    最近更新 更多