2014-09-13 71 views
0

這裏是我的代碼:使用Javascript - 單選按鈕平變化

<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 =>否)顯示警報消息。
我應該如何修改?

回答

0

在你的例子中,radio.value將是字符串"1","2""3"。所有這些都是真理,所以if塊將始終運行。您需要使用if語句中的比較操作符(如==)比較實際值。

例子:

if(radio.value == "1") 
+0

好吧,亞歷山大。我會嘗試。 – user3905044 2014-09-13 03:13:55

0

我剪切並粘貼你的榜樣轉變爲網絡應用和它的工作只是你所希望的方式 - IE和鉻 - 所以不知道爲什麼你得到奇怪的結果。 if(radio.value)只是檢查值的存在(javascript的東西),並且編碼正確。您可能會嘗試更改=「返回更改(this)」,因爲某些瀏覽器可能不喜歡公開呼叫。

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>