【问题标题】:fire a button with pressing ENTER after coming with TAB to it使用 TAB 键后按 ENTER 键触发按钮
【发布时间】:2014-12-04 13:55:29
【问题描述】:

我的代码中有一个按钮。除了使用鼠标并单击它之外,我还想在使用 TAB 选择它后触发(按 ENTER)它。

<div id="CloseButton" tabindex="0" onkeypress="return submitOnEnter(blah,event)">Close</div>

如果有帮助:

function submitOnEnter(blah,e) {
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13) {
        //at this point I need to fire a button w/o using its id
        return false;
    } else {
        return true;
    }
}

如果有人知道怎么做?

是否可以让'blah'指&lt;div&gt;,这样我可以这样做: $(blah).click();

【问题讨论】:

  • 如果你把它改成&lt;button&gt;而不是&lt;div&gt;,你会发现它更容易。
  • @Pointy 我需要它是
  • 我认为无论如何都会发生 - 就像在表单中您可以使用选项卡切换到不同的输入框,也可以使用选项卡选择提交按钮并按 Enter 提交。
  • @PamioSolanky 不,只是按 Enter 对我没有任何作用。

标签: javascript html tabs enter keycode


【解决方案1】:

这可以工作:

jQuery(':focus').click()

【讨论】:

    【解决方案2】:

    这是我的解决方案:

    HTML 的一部分,关闭按钮是一个 div 元素并且是模态窗口的一部分:

    ...
    <div class="closeButton">
          <span id="closeSpan" tabindex="0">Close</span>
    </div>
    ...
    

    JS,在 ModalWindow 类中:

    $(modWin).find("#closeButton").one("click",            
                       this.close).keypress(this.doNothing);
    
    this.close  = function () {
        $("#modalWindow").css("display","none").fadeOut(200).html("");
        $("#modalWindow #closeButton").hide();
        $(window.self.document.body).find("#modalWindow").remove();
    }
    
    this.doNothing = function (e) {
        var keycode;
        if (window.event) keycode = window.event.keyCode;
        else if (e) keycode = e.which;
        else return true;
    
        if (keycode == 13) {
            innerthis.close();
            return false;
        } else {
            return true;
        }
    }
    

    PS:innerthis 在 ModalWindow 类中定义为:

    var innerthis = this;
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签