我无法理解为什么下面描述的提交事件不会在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提交
答案 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")
});
});