【问题标题】:Introducing a value in javascript to radio buttons将 javascript 中的值引入单选按钮
【发布时间】:2015-04-30 16:55:15
【问题描述】:

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

<!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代码中引入这个值和条件?

【问题讨论】:

    标签: javascript html input radio-button output


    【解决方案1】:

    你可以这样做:

    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>

    【讨论】:

      【解决方案2】:

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

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

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

      我认为您对 posneg 的逻辑检查是相反的,但我不确定您的确切意图。您可以在下面的 sn-p 中看到一个可运行的示例。

      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>

      【讨论】:

      • 非常感谢,但请您稍微解释一下 for 循环吗?
      猜你喜欢
      • 2021-05-08
      • 2014-11-25
      • 2017-04-11
      • 2017-04-27
      • 2014-10-07
      • 2017-01-05
      • 1970-01-01
      • 2014-05-31
      相关资源
      最近更新 更多