相关疑难解决方法(0)

如何在输入id等于'submit'的情况下提交javascript

我已经将提交事件绑定到表单,并确保它们不会破坏表单,使用这样的jQuery:

jQuery('form').submit(function(e){
    var form = this;
    e.preventDefault(); 
    alert('1');
    setTimeout(function() {   
        alert('2');
        form.submit();
        }, 1000);

    });
Run Code Online (Sandbox Code Playgroud)

这一切都很好,但是,如果由于某种原因,前端开发人员给这个表单的子输入id ="submit",这会form.submit()导致JavaScript错误(在Chrome中,'Uncaught TypeError:Property'提交'对象#不是一个函数').

你可以看到这里发生的一个例子:http://jsfiddle.net/q68ky/(如果没有,这是行为<input id="submit">:http://jsfiddle.net/JpXzL/

现在,我知道我可以阻止它绑定具有id为'submit'的子节点jQuery('form').not(:has('#submit')).submit()的表单,并且表单将处理得很好,但我的绑定永远不会触发这些表单.

所以,问题是:我如何安全地将这个jQuery函数绑定到所有表单,包括那些<input id="submit">

编辑:值得注意的是,如果我取消绑定提交处理程序然后触发jQuery提交,这个问题不会消失jQuery(form).

javascript forms jquery namespaces

5
推荐指数
1
解决办法
1232
查看次数

标签 统计

forms ×1

javascript ×1

jquery ×1

namespaces ×1