簡體   English   中英

Javascript-單選按鈕onChange

[英]Javascript - Radio Button onChange

這是我的代碼:

<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)”,因為某些瀏覽器可能不喜歡公開通話。

請嘗試一下

<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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM