【问题标题】:how to set focus to autocomplete combobox?如何将焦点设置为自动完成组合框?
【发布时间】:2016-02-10 12:35:27
【问题描述】:

首先接受我对英语不好的道歉。 我有 2 个问题。

  1. 我在一个页面上有两个 HTML 元素:输入文本、选择选项(自动完成组合框)。当我在输入文本上按 enter 时,我想专注于选择选项。如何将焦点设置到组合框?

  2. 我有 2 个这样的元素。

    <input type="text" id="chosegender" />
    <select id="gender">     
      <option value=""></option>
      <option value="m">male</option>
      <option value="f">female</option>
    </select>
    

我想在输入标签上按 f 时选择男性,在输入标签上按 m 时选择m

如果您能帮我解决问题,我将不胜感激。

【问题讨论】:

  • 最好将 2 个问题分成两个单独的帖子,而不是在这里将它们合并为 1 个。

标签: jquery jquery-ui combobox autocomplete


【解决方案1】:

要回答第一个问题,在回车键上转移可以使用以下jquery代码:

$('#chosegender').on('keypress', function(e) { 
    if(e.which == 13) {
        $('#gender').focus();
    } 
    return true;
});

我不太确定第二部分的实际目标是什么,但我整理了一个可以帮助的 sn-p:

$('#gender').on('keypress', function(e) {
    switch(e.which) {
        case 109: // m
        case 77:  // M
            $('#gender').val('f');
            break;
        case 102: // f
        case 70:  // F
            $('#gender').val('m');
            break;
    }
    return false;
});

我在 keypress 事件上附加了一个事件监听器,您可以在 keydown 或 keyup 上使用它来更早地访问它。第二次我返回 false 以部分取消气泡,但在某些情况下,您可能需要使用 preventDefault() 事件方法来防止浏览器捕获密钥。我用它来防止 tab 键的默认行为。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多