我想倾听页面上所有表单上的表单提交事件,包括任何动态添加的表单(例如,将登录按钮展开为登录表单) 。倾听所有表单提交事件,包括动态添加的表单
我能想到的唯一方法是使用setTimeout类型调用来不断地检查页面上的表单。有没有更优雅的方式来做到这一点?
我想倾听页面上所有表单上的表单提交事件,包括任何动态添加的表单(例如,将登录按钮展开为登录表单) 。倾听所有表单提交事件,包括动态添加的表单
我能想到的唯一方法是使用setTimeout类型调用来不断地检查页面上的表单。有没有更优雅的方式来做到这一点?
是的,你可以使用jQuery这个
$(document).on("submit", "form", function(e){
//your code
})
的形式注册一个监听器提交的所有形式,当更新一次,你应该为所有新的形式或重新注册一个监听器页面的内容再再次初始化您的代码关于您的页面。请看下面的例子:
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);