表单上的jQueryUI按钮是按Enter键时的默认按钮

时间:2012-03-12 02:25:16

标签: javascript jquery-ui

我在表单上有一个jQueryUI按钮(不是模态对话框)。我希望在用户点击Enter键时触发它。我怎样才能做到这一点?这是我的代码:

HTML:

<a href="javascript:void(0);" id="loginButtonInner">Login</a>

JS:

$(document).ready(function ()
{
    $("#loginButtonInner").button(getButtonOptions("ui-icon-unlocked", true));
    $("#loginButtonInner").button("option", "disabled", true);
    $("#loginButtonInner").unbind("click");
}

....

if (userNameValid && passwordValid)
    {       
        $("#loginButtonInner").button("option", "disabled", false);
        $("#loginButtonInner").unbind("click").bind("click", function () { authenticateUser(); return false; });
    }
    else 
    {       
        $("#loginButtonInner").button("option", "disabled", true);
        $("#loginButtonInner").unbind("click");
    }

目前,我必须通过键盘选项卡或通过鼠标点击。

我在线搜索解决方案,但他们都指向模态对话框表单按钮。

谢谢!

2 个答案:

答案 0 :(得分:2)

为表单元素添加一个键监听器并注意Enter键,然后从按钮触发单击:

$(yourform).find('*').keypress(function(e) {
    if ( e.which == 13 ) { // 13 is the code for Enter key
        e.preventDefault();
        $(yourbutton).click();
    }
});

答案 1 :(得分:1)

您应该可以使用jQuery.focus()功能。 例如:

 $("#loginButtonInner").focus();

将导致ID为loginButtonInner的元素获得焦点。因此,当您按Enter键时,如果该元素是按钮,则会按下该按钮。

更新:我尝试使用jQueryUI按钮,它工作正常。