【问题标题】:Unable to prevent an input from submitting when press the enter key on it按下回车键时无法阻止输入提交
【发布时间】:2015-07-02 02:27:00
【问题描述】:

我从输入中得到了意外的行为。我有以下代码:

<form id="search_form">
    <div id="search_container">
       <input type="text" id="search_text">
    </div>
    <select onchange="search_field_on_change()" name="search_field">
       <option value="login" selected>Usuario</option>
       <option value="su.name">Nombre</option>
       <option value="surnames">Apellidos</option>
       <option value="email">Correo</option>
       <option value="role">Rol</option>
       <option value="access">Acceso</option>
       <option value="center">Centro</option>
    </select>
    <button type="button" onclick="search()">Buscar</button>
    <span id="modify_user_message"></span>
</form>

当我在输入元素上按回车键时,表单被提交并执行以下请求:

GET home.php?search_field=login

我想避免这种行为。我已经试过了:

$('#search_text').keypress(function(e){
    console.log('Hello');
    e.preventDefault();
    if (e.which == 13){
        search();
    }
});

但我没有在控制台中得到任何东西,所以我认为请求是在事件被捕获之前执行的。

我能做什么?

谢谢。

【问题讨论】:

    标签: html get submit enter preventdefault


    【解决方案1】:

    尝试将您的 keypress 事件更改为 keydown,因为 Enter 键的默认行为是在 keydown 时捕获的,因此您必须在它开始执行默认操作时阻止它。

    这是一个工作示例:

          <!DOCTYPE html>
           <html>
           <script>
           function selecting_key(whatKey){
                  if(whatKey.keyCode==13){
             whatKey.preventDefault();
            }
           }
          </script>
         <body>
         <form>
        <input type="text"  onkeydown='selecting_key(event);'>
        </form>
        </body>
        </html>
    

    如果要检查,尝试将onkeydown更改为onkeyup,以了解哪个事件可以阻止页面被提交

    【讨论】:

    • 试过了,没有任何变化。
    • 您是否尝试在您的if 块中插入e.preventDefault(); 部分,然后尝试将条件更改为e.keyCode == 13
    • 刚试过,同样的行为。由于某种原因,那段代码永远不会被执行。也许请求是由另一个元素抛出的,但我找不到任何东西。
    • 我已经编辑了我的答案@vjsp90。我已经包含了一个关于防止 Enter 键的默认行为的工作代码
    • 谢谢,它有效。虽然我不知道为什么会这样,而以前的解决方案没有。 onkeydown 是在 keydown 之前调用的吗?
    猜你喜欢
    • 1970-01-01
    • 2018-11-18
    • 2010-12-06
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多