Javascript jQuery on(';submit';)无法使用通过document.createElement创建的表单
有人能解释一下为什么('submit')上的Javascript jQuery on(';submit';)无法使用通过document.createElement创建的表单,javascript,jquery,html,Javascript,Jquery,Html,有人能解释一下为什么('submit')上的$('body')不适用于动态创建的表单吗?在创建表单并将其附加到body之后,事件被绑定,因此我希望form\u handler应该启动,但它没有启动 form_handler = function(){ alert('ok'); } function create_form(){ var f = document.createElement('form'); f.method = 'POST'; f.action
$('body')不适用于动态创建的表单吗?在创建表单并将其附加到body
之后,事件被绑定,因此我希望form\u 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。如果我犯了一个明显的错误,请原谅我
更新
我不能使用@Vohuman
建议的jQuery submit
方法。问题是第三方库正在创建一个动态表单并提交它。我正在使用jQuery捕捉它。html格式元素.submit
方法绕过jQuerysubmit
侦听器。您可以使用jQuery包装元素,并使用jQuerysubmit
方法
$(form).submit();
@Script47有关系吗?问题是第三方库正在创建一个动态表单并提交它。我正在使用jQuery来捕捉这一点。我不能改变。我应该在实际问题中提到这一点对不起。一个脏选项是重写
HTMLFormElement.prototype.submit
方法。如果修改第三方库的源代码是一种选择,我会改为这样做。