如何在输入中显示单选按钮值

rah*_*hul 3 javascript jquery

我有具有相同名称和相同ID的单选按钮,它们是动态数据,我想在输入中显示这些单选按钮值,但是当我检查单选按钮时,即使我检查了第二个单选按钮,输入中也只显示第一个单选按钮值或第三个单选按钮。

我有三个输入类型的单选按钮,它们具有相同的名称和ID,但具有不同的值,我正在检查第二个和第三个单选按钮,但它仅在输入中显示第一个单选按钮值。

<!DOCTYPE html>
<html>
<body>

<input type="radio" name="colors" onclick="myFunction()" value="red" id="myRadio">Red color
<input type="radio" name="colors" onclick="myFunction()" value="blue" id="myRadio">Blue color
<input type="radio" name="colors" onclick="myFunction()" value="green" id="myRadio">Green color


<input type="text" id="demo">

<script>
function myFunction() {
  var x = document.getElementById("myRadio").value;
  document.getElementById("demo").value = x;
}
</script>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

当我检查红色时,其值应在带有id演示的输入类型上显示,如果我检查绿色或蓝色,则应在具有id演示的输入中显示这些值。

And*_*L64 5

同一ID不能有多个元素,因为ID应该是唯一的。您应该将它们替换为一个类,然后以该类的名称为目标。

另外,请避免编写内联JavaScript,而是使用事件监听器,如下所示:

/* JavaScript */

var radio = document.querySelectorAll(".myRadio");
var demo = document.getElementById("demo");
  
function checkBox(e){
	demo.value = e.target.value;
}

radio.forEach(check => {
	check.addEventListener("click", checkBox);
});
Run Code Online (Sandbox Code Playgroud)
<!-- HTML -->

<input type="radio" name="colors" value="red" class="myRadio">Red color
<input type="radio" name="colors" value="blue" class="myRadio">Blue color
<input type="radio" name="colors" value="green" class="myRadio">Green color


<input type="text" id="demo">
Run Code Online (Sandbox Code Playgroud)