【问题标题】:How to disable submit on enter with jquery leaving the other functionality attached to enter intact如何使用jquery禁用输入时提交,保留附加的其他功能以完整输入
【发布时间】:2012-08-21 06:12:30
【问题描述】:

jquery disable form submit on enter 应该已经回答了这个问题,但这个问题的答案似乎对我不起作用 - 当我在输入文本字段中按 Enter 键时,会发生三件事:

  1. 该字段的更改事件被触发。
  2. 表单已提交。
  3. 最终触发上述答案中描述的 keyup 事件处理程序。

现在,我可以用 keydown 替换 keyup ,然后真的不会触发提交。但该字段的更改事件也没有。

互联网上有很多链接,但大多数都在谈论复杂的场景,比如禁用 if 和 when 等...

我只想在输入时禁用提交,仅此而已。

我使用的是 jquery 1.8.0

谢谢。

编辑

我想澄清一下。我确实希望在用户单击提交输入按钮时发生提交。我只是不希望它在进入时发生。

<form id="invoiceForm">
  ...
  <input type="submit"/>
</form>

EDIT2

http://jsfiddle.net/mark69_fnd/akZG4/ - 如果提交被触发,应该会看到消息

{"error": "Please use POST request"}

我不想在输入时看到此消息。仅当实际点击提交时。

EDIT3

我将小提琴更改为实际提交空白页并在提交时发出警报。

EDIT4

我想阻止在文本输入字段中按回车键时提交表单的默认操作。但我确实想保留文本输入的自然行为 - 触发更改事件。

【问题讨论】:

  • 您实际何时提交表单?仅按按钮?请发布一些代码

标签: jquery form-submit enter


【解决方案1】:

在类似的情况下,我使用了这个:

HTML:

<input name="my_text" onkeypress="disableSubmit(this, event)" />

JS:

function disableSubmit(elem, event) {
    if (event.which == 13) { 
        event.preventDefault();
        $(elem).blur();
        return false;
    }
}

所以基本上是为了触发模糊 - 所以当输入发生变化时 - 也会触发 change 事件。当然副作用是输入失去焦点。但从我们的使用场景来看,还可以。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 2012-02-25
    相关资源
    最近更新 更多