jQuery on(' submit')不使用通过document.createElement创建的表单

时间:2015-08-06 21:54:05

标签: javascript jquery html

有人可以解释为什么$('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来捕获它。

1 个答案:

答案 0 :(得分:2)

HTMLFormElement.submit方法绕过jQuery submit侦听器。您可以使用jQuery包装元素并使用jQuery submit方法。

$(form).submit();