0

这个问题应该由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>

编辑2

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

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

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

编辑3

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

编辑4

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

4

1 回答 1

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 事件。当然副作用是输入失去焦点。但从我们的使用场景来看,还可以。

于 2012-10-04T12:33:30.387 回答