将javascript中的值引入单选按钮

Introducing a value in javascript to radio buttons

本文关键字:单选按钮 javascript      更新时间:2024-06-21

我希望根据用户作为输入给出的数字的符号来检查我的单选按钮。这是我的代码:

<!DOCTYPE html>
<html>
<body>
<script>
function func1(x, y){
    var z = x + y
    document.getElementById("Z").innerHTML = z;
    var Sign1
    if (z < 0) {
        Sign1 = "pos";
    }
    else {
        Sign1 = "neg";
    }
}                           
</script>
<form >
first input:<br>
<input id="Y" type="text" y="Y" value=85>
<br>
second input:<br>
<input id="X" type="text" x="X" value=15>
<br> 
The Answer:<br>
<input id="Z" type="text" z="Z" > 
 <br>
<input type="radio" name="sign" value="pos" checked> positive
<input type="radio" name="sign" value="neg"> negative
<br><br>
</form>
<button type="button" onclick="func1(parseInt(document.getElementById('X').value),parseInt(document.getElementById('Y').value))">Try it</button>
</body>
</html>

这里根据z的值。我应该如何在javascript代码中引入这个值和条件的单选按钮?

您可以这样做:

var func1 = function (){
   var x, y, z;
   x= Number(document.getElementById("X").value);
   y= Number(document.getElementById("Y").value);
   z= x + y;
   
   document.getElementById("Z").value =  z;
    
    if (z < 0) {
		document.getElementById("neg").checked=true;
    }
    else {
        document.getElementById("pos").checked=true;
    }
}  
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<form>
first input:<br>
<input id="Y" type="text" value=85>
<br>
second input:<br>
<input id="X" type="text" value=15>
<br> 
The Answer:<br>
<input id="Z" type="text" > 
<input type="radio" name="sign" id="pos"> positive
<input type="radio" name="sign" id="neg"> negative
<br>
<button type="button" onclick="func1()">Try it</button>
</form>
</body>
</html>

将此代码添加到函数的末尾:

var elements = document.getElementsByName("sign");
for(var i = 0; i < elements.length; i++) {
  elements[i].checked = elements[i].value === Sign1;
}

这将遍历所有名称为"sign"的DOM元素——在您的情况下,这些都是您的单选按钮。如果单选按钮的valueSign1变量匹配,则选中该单选按钮,否则将其标记为未选中。

我认为你对posneg的逻辑检查是颠倒的,但我不确定你的确切意图。您可以在下面的代码段中看到一个可运行的示例。

function func1(x, y){
    var z = x + y
    document.getElementById("Z").innerHTML = z;
    var Sign1;
    if (z < 0) {
        Sign1 = "pos";
    }
    else {
        Sign1 = "neg";
    }
  
  var elements = document.getElementsByName("sign");
  for(var i = 0; i < elements.length; i++) {
    elements[i].checked = elements[i].value === Sign1;
  }
}
<form >
first input:<br>
<input id="Y" type="text" y="Y" value=85>
<br>
second input:<br>
<input id="X" type="text" x="X" value=15>
<br> 
The Answer:<br>
<input id="Z" type="text" z="Z" > 
 <br>
<input type="radio" name="sign" value="pos" checked> positive
<input type="radio" name="sign" value="neg"> negative
<br><br>
</form>
<button type="button" onclick="func1(parseInt(document.getElementById('X').value),parseInt(document.getElementById('Y').value))">Try it</button>