jquery - 专注于按钮而不是输入字段

标签 jquery html material-design

我有一个输入框和一个关闭按钮。 当页面加载时,它专注于输入文本字段(在 ready 中)但相同的焦点命令 $("#param_pattern_value").focus(); 在其他函数中(当单击 tab)将焦点放在关闭按钮上而不是文本输入字段上。

HTML:

<div tabindex="-1" class="layout-column layout-gt-xs-row layout-align-start-center layout-margin">
<div tabindex="-1" class="classic-text-input mdl-textfield mdl-js-textfield mdl-textfield--floating-label flex">
    <input tabindex="0" class="mdl-textfield__input" type="text" id="param_pattern_value"  value="enter text">
    <label class="mdl-textfield__label" for="param_pattern_value">
        <span>enter 1</span>
    </label>  

    <button tabindex="0" class="mdl-button mdl-js-button  mdl-button--icon mdl-button--accent margin-left clear_icon_in_input">
        <i class="material-icons mdl-textfield__label__icon">close</i>
    </button>

</div>
</div>

JS:

$(document).ready(function () {  
     $('#param_pattern_value').focus()
});

$("body").keydown(function(e){
        var TAB     = 9;
        var key = e.which;

        if (key == TAB ){
                    $("#param_pattern_value").focus();
        }
    });

LINK TO JSFIDDLE

我尝试了很多变体,但总是在点击 tab 后它集中在关闭按钮上。

请注意,在我的网站上,关闭按钮是一个位于输入字段内的“X”图标(代码看起来相同)。

我做错了什么吗?

谢谢!
迈克

最佳答案

如果您希望在出现 TAB 键时将焦点设置在 #param_pattern_value 输入字段上,您可以添加 .preventDefault() :

$("body").keydown(function(e){
    var TAB = 9;
    var key = e.which;

    if (key == TAB ){
       e.preventDefault();
       $("#param_pattern_value").focus();
    }
});

请注意,$("#param_pattern_value").focus() 实际上确实在您的 keydown 代码中起作用,但您的处理程序恰好在 默认 keydown 处理程序。 您可以简单地使用 keyupchecking output in console 来测试它.

JSFiddle Demo


如果您只是不想让 X 按钮获得焦点,请在按钮上设置 tabindex="-1" 属性。

关于jquery - 专注于按钮而不是输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43962438/

相关文章:

javascript - 根据 DIV 大小调整 iFrame 的大小

javascript - 从整个页面中选择 div 内的前 n li 个元素

javascript - float : Get the x axis offset while drawing markings

javascript - 我有一个固定的 div,我正在使用 jquery 在滚动时淡出。它工作正常,但如果我半途而废并引用 div 显示的页面

html - 在编号元素符号和缩进文本的左侧添加边框

java - 安装Android Carbon图书馆的正确方法是什么?

javascript - 如何使用 jquery 在实际的 div 本身中显示 div 的 html5 "data"标签中保存的信息

html - 导航栏在 Twitter bootstrap 3 中的绝对定位

angular - 使用 Angular material2 创建超过 3 种颜色的主题

android - 无法膨胀 MaterialCardView