这是我的代码:
<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 =&gt;是)。
是的意思是我选择了单选按钮。
没有意味着我没有选择单选按钮。
现在我的问题是,如果我选择第一个单选按钮,它将显示每个单选按钮的警告消息
(即1 =&gt;是,2 =&gt; No,3 =&gt;否)。
我该如何修改?
答案 0 :(得分:0)
在您的示例中,radio.value
将是字符串"1"
,"2"
或"3"
。所有这些都是真实的,所以if块将始终运行。您需要使用比较操作符(例如if语句中的==
)比较实际值。
示例:强>
if(radio.value == "1")
答案 1 :(得分:0)
我将您的示例剪切并粘贴到网络应用中,它的工作方式与您预期的一样 - 包括IE和Chrome - 所以不知道为什么您会得到奇怪的结果。 if(radio.value)只是检查是否存在值(javascript事物)并且编码正确。您可以尝试onchange =&#34;返回更改(此)&#34;有些浏览器可能不喜欢公开电话。
答案 2 :(得分:0)
请试试这个
<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>