Javascript-更改单选按钮

Javascript - Radio Button onChange

本文关键字:单选按钮 Javascript-      更新时间:2023-09-26

这是我的代码:

<html>
<head>
    <script type="text/javascript">
        function Change(radio)
        {   
            if(radio.value)
            {
                setvalue = "Yes";
                radiovalue = radio.value;
                value = setvalue;
                ChangeValue(radiovalue,value)
            }
        }  
        function ChangeValue(radiovalue, value)
        {
            alert(radiovalue+"=>"+value);
        }
    </script>
</head> 
<body>
<?php
for($i = 1; $i <= 3; $i++)
{
?>
    <input type="radio" name="choice" value="<?php echo $i;?>" onchange="Change(this);" /><br />
<?php
}
?>
</body>
</html>

网页中有3个单选按钮
从上面的代码中,当我单击第一个单选按钮时,它将显示我选择的单选按钮的警告消息(即1=>是)
是意味着我选择了单选按钮
不意味着我没有选择收音机按钮

现在我的问题是,如果我选择第一个单选按钮,它将显示每个单选按钮的警告消息
(即1=>是,2=>否,3=>否)
我应该如何修改?

在您的示例中,radio.value将是字符串"1""2""3"。所有这些都是真实的,所以if块将始终运行。您需要在if语句中使用比较运算器(如==)来比较实际值。

示例:

if(radio.value == "1")

我将您的示例剪切并粘贴到一个web应用程序中,它的工作方式正是您所期望的——IE和chrome——所以不知道为什么会得到奇怪的结果。if(radio.value)只是检查一个值(javascript事物)的存在,并且编码正确。您可以尝试onchange="return Change(this)",因为有些浏览器可能不喜欢open调用。

请尝试此

<html>
<head>
<script type="text/javascript">
function Change(radio) {   
  for (var i = 1; i < 4; i++) {
    var ele = document.getElementById("choice_"+i);
    if(ele.checked) {
      setvalue = "Yes";
      radiovalue = ele.value;
      value = setvalue;
      ChangeValue(radiovalue,value)
    } else {
      setvalue = "No";
      radiovalue = ele.value;
      value = setvalue;
      ChangeValue(radiovalue,value)
   }
  }             
}  
function ChangeValue(radiovalue, value) {
  alert(radiovalue+"=>"+value);
}
</script>
</head> 
<body>
<?php
for($i = 1; $i <= 3; $i++) {
?>
 <input type="radio" name="choice" id="choice_<?php echo $i;?>" value="<?php echo $i;?>" onchange="Change(this);" /><br />
<?php
}
?>
</body>
</html>