【发布时间】:2020-04-14 23:19:25
【问题描述】:
我在表单上有一个隐私政策复选框,并且我在来自提交按钮上设置了preventDefault(),因此除非选中该复选框,否则不会提交电子邮件地址。
在下面的代码中,我在复选框上放置了一个简单的removeEventListener 方法,用于当复选框被选中时,但代码不起作用?
preventDefault() 方法有效,但如果满足privacyCheckbox.checked === true 条件,则不会发生提交。
var mailFormSubmit = document.getElementById('mc-embedded-subscribe'), // subscribe button
privacyCheckbox = document.getElementById('privacy-checkbox') // checkbox
// prevent default
function stopFormSubmit (e) {
e.preventDefault()
}
if (privacyCheckbox.checked === false) {
mailFormSubmit.addEventListener('click', stopFormSubmit, false)
}
if (privacyCheckbox.checked === true) {
mailFormSubmit.removeEventListener('click', stopFormSubmit, false)
}
【问题讨论】:
-
逻辑在哪里?当
privacyCheckbox发生变化时,您是否正在运行它? -
@Jacob 上面的代码是我在网站的 .js 文件中的全部内容。
标签: javascript events preventdefault