首页 > 解决方案 > 当我在特定文本框中按 Enter 时,如何使文本框一次更改一个背景颜色(当有多个文本框时)?

问题描述

我试图弄清楚如何创建一个包含多行文本框的表单,当参与者在每个文本框中键入他们的响应并按 Enter 键时,文本框的背景从白色变为黑色,以隐藏他们的响应刚进。但是目前,当我在第一个文本框上按 Enter 键时,所有文本框都从白色变为黑色,或者最后一个文本框变为黑色,而不仅仅是第一个文本框。有什么解决办法吗?由于我正在使用的平台使用基于 javascript 的语言,因此我尝试将代码转换为 javascript,但我不确定它是否准确。谢谢,非常感谢任何帮助!

function enter(e) {
      if (e.keyCode == 13)
  document.getElementById("response1").style.backgroundColor = "red";
}

function enter(e) {
      if (e.keyCode == 13)
  document.getElementById("response2").style.backgroundColor = "red";
}

function enter(e) {
      if (e.keyCode == 13)
  document.getElementById("response3").style.backgroundColor = "red";
}

标签: javascripttextboxbackground-color

解决方案


enter()您对每个元素都有相同的功能。难怪他们都火了。试试这个方法:

function enter(e) {
  if (e.keyCode == 13) {
   let tocolor;
   switch (e.target.name) {
     case "nameattributeoftextbox1": tocolor = "response1"; break;
     case "nameattributeoftextbox2": tocolor = "response2"; break;
...
   }
   document.getElementById(tocolor).style.backgroundColor = "red";
  }
}

推荐阅读