Javascript 失去焦点时提交表单
我有一个动态创建的表单,它附带了一个提交事件监听器,因此我可以执行一些ajax请求来保存数据 但我也希望在失去焦点时提交它 我调用了Javascript 失去焦点时提交表单,javascript,Javascript,我有一个动态创建的表单,它附带了一个提交事件监听器,因此我可以执行一些ajax请求来保存数据 但我也希望在失去焦点时提交它 我调用了form.submit(),但忽略了先前创建的事件侦听器 form.addEventListener('submit', function (event_handler) { event_handler.preventDefault(); /* some code */ }); // if loses focus form.addEventList
form.submit()
,但忽略了先前创建的事件侦听器
form.addEventListener('submit', function (event_handler) {
event_handler.preventDefault();
/* some code */
});
// if loses focus
form.addEventListener('blur', function (event) {
form.submit(); // submits, but ignores the defined eventListener so the preventDefault() is ignored.
return false;
}, true);
我希望form.submit()能够运行submit侦听器中定义的代码
有什么办法可以解决这个问题
没有jQuery或任何其他框架。只是香草js。确实有问题。
调用JavaScript form.submit()时,它有时会覆盖事件侦听器。
简单的解决方案就是让提交者函数调用并调用它
function runBeforeSubmit()
{
/* some code */
}
form.addEventListener('submit', function (event_handler) {
event_handler.preventDefault();
runBeforeSubmit(); <------------------------ shared code to process before submit
});
// if loses focus
form.addEventListener('blur', function (event) {
runBeforeSubmit(); <------------------------ shared code to process before submit
form.submit();
return false;
}, true);
函数runbeforesmit()
{
/*一些代码*/
}
form.addEventListener('submit',函数(事件处理程序){
event_handler.preventDefault();
runBeforeSubmit();确实有效。我可以覆盖提交事件的js内置方法,但似乎有点过火。我希望有人知道一些技巧,而不必重复代码(虽然只是一行代码)。谢谢。答案已接受。