Javascript jQuery on(';submit';)无法使用通过document.createElement创建的表单

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

有人能解释一下为什么('submit')上的
$('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
方法绕过jQuery
submit
侦听器。您可以使用jQuery包装元素,并使用jQuery
submit
方法

$(form).submit();

@Script47有关系吗?问题是第三方库正在创建一个动态表单并提交它。我正在使用jQuery来捕捉这一点。我不能改变。我应该在实际问题中提到这一点对不起。一个脏选项是重写
HTMLFormElement.prototype.submit
方法。如果修改第三方库的源代码是一种选择,我会改为这样做。