我编写了这段代码来验证是否所有输入字段都已填写。如果不允许提交,则不允许,但是正确的话,我必须两次单击提交按钮,这是第一次验证并添加eventListener,第二次运行是因为它具有事件侦听器。如何修改代码,这样我只需单击一次即可?
function validaInput() {
const inputs = document.querySelectorAll(".input-field");
let validez;
inputs.forEach(function(input) {
if (input.value !== "") {
validez = true;
} else {
validez = false;
}
});
if (validez) {
submitBtn.addEventListener("click", calculaPromedio);
submitBtn.addEventListener("click", addMateria);
} else {
alert("No ha llenado todos los campos.");
}
}
只需调用相关函数即可,而不是添加侦听器。(此外,否则您每次单击按钮时都会添加新的重复侦听器。)
if (validez) {
calculaPromedio();
addMateria();
} else {
alert("No ha llenado todos los campos.");
}
如果this
在这些函数中使用,则需要使用例如calculaPromedio.call(this)
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句