javascript eventlistener函数参数
我正在尝试使用带有参数的inputListener函数将eventlistener添加到html的输入元素中,如下所示。但这种方式行不通。我不明白为什么不能将参数传递给eventlistener函数javascript eventlistener函数参数,javascript,parameter-passing,event-listener,Javascript,Parameter Passing,Event Listener,我正在尝试使用带有参数的inputListener函数将eventlistener添加到html的输入元素中,如下所示。但这种方式行不通。我不明白为什么不能将参数传递给eventlistener函数 for (let index = 0; index<inputElements.length; index ++) { inputElements[index].addEventListener("input",inputListener(index)); } function inpu
for (let index = 0; index<inputElements.length; index ++) {
inputElements[index].addEventListener("input",inputListener(index));
}
function inputListener(index){
if (inputElements[index].value.length>=5) {
inputElements[index].style.border="none";
}
else{
inputElements[index].style.border="solid 3px red";
}
}`
for(让索引=0;索引=5){
inputElements[index].style.border=“无”;
}
否则{
inputElements[index].style.border=“实心3px红色”;
}
}`
尝试从回调函数调用它
function inputListener(index) {
if (inputElements[index].value.length >= 5) {
inputElements[index].style.border = "none";
} else {
inputElements[index].style.border = "solid 3px red";
}
}
for (let index = 0; index < inputElements.length; index++) {
inputElements[index].addEventListener("input", function(e) {
inputListener(index)
});
}
函数inputListener(索引){
if(inputElements[index].value.length>=5){
inputElements[index].style.border=“无”;
}否则{
inputElements[index].style.border=“实心3px红色”;
}
}
for(让index=0;indexthis
从事件侦听器中访问元素引用,而不是通过在侦听器函数中传递index
。由于您正在验证input
元素中文本的长度,因此可以使用keyup
事件侦听器来验证文本的长度
var-inputElements=document.querySelectorAll('input');
for(设索引=0;索引=5){
this.style.border=“无”;
}
否则{
this.style.border=“实心3px红色”;
}
}
在函数中使用关键字“this”来引用对象(inputElements[index])就足够了,无需传递索引。例如,阅读本页。“我不明白为什么不能将参数传递给eventlistener函数。”addEventListener
希望传递函数。您正在传递inputListener
的返回值,它是未定义的
。谢谢。成功了。但我不想使用keyup,因为我想在按住任何键的同时连续捕捉输入值。Keyup仅在键打开时进行验证。如果我想将参数传递给inputlistener函数而不是索引参数,该怎么办?