有人可以解释为什么$('body').on('submit')
不能用于动态创建的表单吗?在创建表单并将其附加到body
之后,事件就会被绑定,所以我期待form_handler
应该启动,但它没有。
form_handler = function(){
alert('ok');
}
function create_form(){
var f = document.createElement('form');
f.method = 'POST';
f.action = '/echo/html/';
f.className = 'test_form';
document.body.appendChild(f);
return f;
}
$(document).ready(function(){
var form = create_form();
$('body').on('submit', 'form.test_form', form_handler);
form.submit();
});
这是jsfiddle link。如果我犯了一个明显的错误,请原谅我。
更新
我无法使用jQuery submit
建议的@Vohuman
方法。问题是第三方库正在创建动态表单并提交它。我正在使用jQuery来捕获它。
答案 0 :(得分:2)
HTMLFormElement.submit
方法绕过jQuery submit
侦听器。您可以使用jQuery包装元素并使用jQuery submit
方法。
$(form).submit();