首页 > 解决方案 > 动态分配 onsubmit 验证器

问题描述

在我的表格中,我有以下内容

<script>
function validate(form)
{
   if(form.xyz.value=='') return false;
   return true;
}
</script>

<form onsubmit="return validate(this)">
  <input name="xyz">
  <input type="submit" value="submit">
</form>

出于某种原因,我必须动态分配我的 onsubmit 侦听器。

我可以定义

document.forms[0].addEventListener('submit',validate);

但是如何动态实现return validate(this)

(我需要纯 JavaScript,而不是 jQuery)

标签: javascript

解决方案


传递给事件处理函数的第一个参数是Event 对象。如果要传递不同的值,则创建一个新函数并显式传递它。

function validateEventHandler(event) {
    return validate(this);
}

document.forms[0].addEventListener('submit',validateEventHandler);

......但我会重写validate,以便它只是使用this而不是form论点。


推荐阅读