2 回答
![?](http://img1.sycdn.imooc.com/533e4c0500010c7602000200-100-100.jpg)
TA贡献1825条经验 获得超4个赞
将验证代码放在一个命名函数中,这样您就可以从两个事件侦听器中调用它。
function validate_input(el) {
const inputValue=el.value;
const validator=inputCheck(el)
if (validator) {
const valid= validator(inputValue);
borderHighlight(valid, el);
}
}
function createListener(input) {
return e => validate_input(input);
}
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 => validate_input(input));
});
![?](http://img1.sycdn.imooc.com/54584dd900014f6c02200220-100-100.jpg)
TA贡献1842条经验 获得超12个赞
稍微更改表单提交侦听器。调用从返回的函数createListener并传递一个假事件对象:{target: input}。
myForm.addEventListener('submit', (e)=> {
e.preventDefault()
inputs.forEach(input=> {
createListener(input)({target: input});
})
});
这样你就不需要在createListener.
添加回答
举报