【问题标题】:How can I fire an <a href> with enter key press?如何使用回车键触发 <a href> ?
【发布时间】:2011-03-15 17:35:24
【问题描述】:

所以,我需要修复一个错误:每当您按下“回车”键时;表单不提交。基本上原因是因为触发表单提交的元素是一个href...我尝试将其设为提交,但css失败了,所以我想知道是否有办法让它使用输入键提交?

代码如下:

        <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>

【问题讨论】:

  • 您可以设置按钮样式。我认为走这条路会更少的代码和更少的麻烦,然后使用 javascript 创建点击功能。
  • @Nick:确实,这也将提高可访问性。表单需要按钮。
  • 是的,我想那是正确的方法,但我只需要修复错误而不是重新制作它,我不知道从哪里开始。
  • 仅 javascript 链接上的首选形式是: 这种方式不需要“return false”。

标签: javascript forms submit


【解决方案1】:

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

【讨论】:

  • 选择简单。 +1
【解决方案2】:

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

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

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

【讨论】:

  • 这很激烈,jquery总是出人意料
【解决方案3】:

您是否尝试过文本框的 onkeyup:

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

我认为这应该可行。没测试过。

【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      嗯,我想我有两种方式得到你

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

      2-当焦点全部在文档上时你需要

      如果你需要它在 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;">
      

      对不起,我是新来的第一个帖子 我希望我能帮忙:)

      【讨论】:

      • 听起来有点像,但它会在
        标签中的元素焦点期间完成。现在问题已经通过一个不可见的提交按钮解决了......但这似乎在 IE 中不起作用。
      • 在href的焦点上试试它会起作用我现在测试它以获得更多帮助我在这里
      猜你喜欢
      • 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
      相关资源
      最近更新 更多