如何触发<a href=""> with enter key press?</a>

时间:2011-03-15 17:35:24

标签: javascript forms submit

所以,我需要修复一个错误:每当你点击“输入”键;表格不提交。基本上原因是因为触发表单提交的元素是一个href ...我试着把它作为提交然后css失败所以我想知道是否有办法让它用enter键提交?

以下是代码:

        <div class="login-form-bg">
        <form name="login_form" id="login_form" method="post">
            <table>
                <tr>
                    <td>{translate id='Game'}Login:{/translate}</td>
                    <td><input type="text" name="ss_users_pseudo" /></td>
                </tr>
                <tr>
                    <td>{translate id='Game'}Password:{/translate}</td>
                    <td><input type="password" name="ss_users_password" /></td>
                </tr>
                <tr height="30px">
                    <td>&nbsp;</td>
                    <td>
                    <fb:login-button perms="email" id="facebook-login-button"></fb:login-button>
                    </td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td class="checkbox"><label for="request_password">{translate id='Game'}<a href="forgotPassword.php">Request password</a>{/translate}</label></td>
                </tr>
                <tr>
                    <td>&nbsp;</td>
                    <td class="checkbox">{translate id='Game'}Remember me{/translate} <input type="checkbox" name="ss_users_remenber_me" value="1" /></td>
                </tr>

            </table>
                <a href="#" onclick="document.login_form.submit(); return false;" name="connect" id="connect">
                    <div class="button-action login-button-div">
                        <span><span><span>
                            {translate id='Game'}Login{/translate}
                        </span></span></span>
                    </div>
                </a>
        </form>

5 个答案:

答案 0 :(得分:4)

实际上,我找到了解决问题的方法......我所要做的只是使用display:none和visible:false进行提交;并没有使输入工作的价值....我知道这很奇怪,但我在这里修复错误而不是重新设计代码:(

答案 1 :(得分:1)

正确的方法是使其成为一个提交按钮并相应地更改CSS(您可以使提交按钮看起来像一个链接),您可以注册一个更改document.location或提交表单的javascript事件。提交()

答案 2 :(得分:1)

这是一个jQuery的答案。但是你明白了。

这将检测从表单中的任何输入中按下的回车键,它将触发表单的submit()方法

$("#login_form input").keypress(function(e) {
  if (e.keyCode == 13) {
    $(this).closest("form").submit();
  }
});

答案 3 :(得分:0)

你有没有试过文本框的onkeyup:

if (event.keyCode == 13) { document.getElementById("connect").click(); }

我认为这应该有效。没有测试过。

答案 4 :(得分:0)

我想我能以两种方式帮助你

1-当焦点在href上时你需要

当焦点集中在文档全部

时,你需要

好吧,如果你需要它在a href

的焦点上
function hrefKeyDown(evt)
{
var ev = ((window.event)?(window.event):(evt));
var ahref = ((window.event)?(window.event.srcElement):(evt.currentTarget));
var charCode = ((window.event)?(window.event.keyCode):(((evt.which)?(evt.which):(evt.keyKode))));
if(charCode==13)
{
ahref.click();
}
}

        <a href="#" onclick="document.login_form.submit(); return false;" name="connect" id="connect" onkeydown = "hrefKeyDown(event);return false;">

如果在按下输入时它在文档上,请单击a href

function hrefKeyDown(evt)
 { 
var ev = ((window.event)?(window.event):(evt)); 
var ahref = document.getElementById('connect');
var charCode = ((window.event)?(window.event.keyCode):(((evt.which)?(evt.which):(evt.keyKode))));
if(charCode==13) 
{ 
ahref.click();
} 
}

<body onkeydown="hrefKeyDown(event);return false;">
抱歉,我在这里发布了第一篇新帖 我希望我能帮忙:)。