我想在页面上的所有表单上收听表单提交事件,包括动态添加的任何表单(例如,将登录按钮扩展为登录表单)。
我能想到的唯一方法是使用setTimeout类型调用不断检查页面上的表单。还有更优雅的方法吗?
答案 0 :(得分:0)
是的,你可以使用jQuery来实现这个
$(document).on("submit", "form", function(e){
//your code
})
答案 1 :(得分:0)
在所有表单上的表单提交上注册一个监听器,当每个页面内容更新时,您应该再次为所有新表单注册一个监听器,或者再次重新初始化您的页面的代码。请参阅以下示例:
var forms = document.getElementsByTagName('form');
for (var i = 0; i < forms.length; i++) {
// forms[i].removeEventListener('submit',functionName);
forms[i].addEventListener("submit", function(e) {
/* your work */
// this.removeEventListener('submit',arguments.callee);
});
}
然后,每次添加新表单元素或更新页面内容时,都可以再次运行代码或仅将侦听器附加到新创建的表单。
如果您决定在页面上运行代码,则应首先通过
删除以前连接的侦听器功能forms[i].removeEventListener('submit',referenceToFunction);
this.removeEventListener('submit',arguments.callee);