具有单个输入字段的表单的jQuery提交处理程序不会在IE上触发

时间:2010-07-28 02:37:07

标签: jquery internet-explorer

我有一个带有输入元素但没有提交按钮的表单。我使用jQuery附加一个onsubmit处理程序:

$('#tickerbox-form').submit(function (ev) {
    alert('submit'); // I have other code that actually does something...
    return false;
});

我希望在输入字段中按下Enter按钮时调用(匿名函数)处理程序。这适用于Safari,但不适用于IE。我做错了什么?

btw:IE确实对Enter执行操作,并在URL上为表单的指定“action”参数调用POST请求。

3 个答案:

答案 0 :(得分:2)

看起来IE默认情况下不会在输入时提交表单。阅读here

答案 1 :(得分:2)

更改代码以捕获 Enter 键:

$('#tickerbox-form').keypress(function(e){
  if (e.which==13){
    $(this).submit();
  }
});

答案 2 :(得分:0)

在IE上,它只有在您有一个输入字段时才有效,即在您的情况下只有 tickerbox-form

即使jquery上的命令定义也说明了这一点。

  

“根据浏览器的不同,输入   密钥只能导致表单提交   如果表单只有一个文本   字段,或仅在提交时   按钮存在。界面应该   不依赖于特定的行为   这个密钥除非问题是强制的   观察按键事件   按下Enter键。“

为了您的目的,如果您有更多字段,请使用添加属性 ontextchange 等内容:

$('#tickerbox-form').keydown(function (ev) {
    alert('submit'); // Check here if enter is pressed
    return false;
});