javascript 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

我正在尝试使用带有参数的inputListener函数将eventlistener添加到html的输入元素中,如下所示。但这种方式行不通。我不明白为什么不能将参数传递给eventlistener函数

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;index您需要使用
this
从事件侦听器中访问元素引用,而不是通过在侦听器函数中传递
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函数而不是索引参数,该怎么办?