JQuery:提交事件不在FireFox上触发

时间:2012-07-31 14:07:37

标签: javascript jquery

我无法理解为什么下面描述的提交事件不会在FireFox和IE上触发。 适用于Chrome

$("#frame-right").on("submit", "form", function(event){                  
    alert('Submit done')
});

你能帮助我吗?

修改

通过按“提交”按钮提交表单,但表单包含在通过.load()函数加载的页面中,并且在定义上述函数时不存在。

仅供参考,在同一个地方,我定义了这个在所有浏览器上都能正常工作的功能

$("#frame-right").on("click","a",function(event){
alert('link clicked');
}

“submit”事件是否可以像“click”事件一样动态绑定?

编辑2

感谢您的回复。 问题是在load()函数之后,加载的表单不能用Firefox提交

3 个答案:

答案 0 :(得分:2)

我的错误......

经过长时间的测试,我发现表格必须在表格外的表格元素内声明......

这个例子不起作用:

<table>
  <form>
    <tr><td><button type="submit">Submit</button></td></tr>
  </form>
</table>

这个例子有效:

<form>
  <table>    
    <tr><td><button type="submit">Submit</button></td></tr>
  </table>
</form>

答案 1 :(得分:0)

所以你应该在你的加载函数的回调中附加该监听器,以确保在加载表单后它被附加。

所以例如:

$('#result').load('ajax/test.html', function() {


    $("#frame-right").on("submit", "form", function(event){                  
        alert('Submit done')
    });


});

答案 2 :(得分:0)

这对你有用。确保在执行ajax操作时阻止了默认的提交行为。

$(function(){
  $(document).on("submit", "form", function(event){   
      event.preventDefault() ;  // prevent dfaul submit behaviour
      alert("submitting")
  });
});