0

我不明白为什么下面描述的提交事件没有在 FireFox 和 IE 上触发。好的 Chrome

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

你能帮助我吗?

编辑

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

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

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

“提交”事件是否可以像“点击”事件一样动态绑定?

编辑 2

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

4

3 回答 3

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>
于 2012-07-31T15:52:40.373 回答
0

因此,您应该在加载函数的回调中附加该侦听器,以确保在加载表单后附加该侦听器。

例如:

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


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


});
于 2012-07-31T14:43:02.937 回答
0

这应该适合你。确保在执行 ajax 时阻止默认提交行为。

$(function(){
  $(document).on("submit", "form", function(event){   
      event.preventDefault() ;  // prevent dfaul submit behaviour
      alert("submitting")
  });
});
于 2012-07-31T14:46:24.000 回答