【发布时间】:2019-10-08 16:35:24
【问题描述】:
这是我的 JSfiddle:https://jsfiddle.net/apasric4/p61wjf8a/
这是我的示例 JS 代码:
function createListener(input) {
return (e)=> {
const el=e.target;
const inputValue=e.target.value;
const validator=inputCheck(input)
const valid=validator(inputValue);
borderHighlight(valid, el)
}
}
inputs.forEach(input=> {
input.addEventListener("input", createListener(input))
})
function borderHighlight(valid, el) {
(valid)? el.style.border='2px solid green':el.style.border='2px solid red'
}
myForm.addEventListener('submit', (e)=> {
e.preventDefault()
inputs.forEach(input=> {
createListener(input)
})
})
每个元素上的输入事件侦听器都非常适合它的功能。它在用户输入时提供实时错误消息。但是我希望该函数在用户提交表单时也做同样的事情(在附加到表单元素的提交事件上)?如何在我的代码中实现该功能?
【问题讨论】:
-
createListener(input)返回一个函数,该函数将 javascript 事件作为参数以获取适当的元素。当您提交表单时,您实际上并没有该事件,因此许多 createListener 返回的函数将无法按原样工作,我建议您创建一个类似的函数,该函数接受元素作为参数而不是事件。
标签: javascript forms submit addeventlistener