2013-05-16 49 views
1

我有以下HTML參數值 -的JavaScript沒有比較過

<input type="Radio" name="radio2text" value="Radiobutton1" 
onclick="javascript:radioWithText('one')" checked="checked" />OneRadio<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('two')" unchecked />TwoRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('three')" unchecked />ThreeRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="javascript:radioWithText('four')" unchecked />FourRadio 

而且這個

<span id="one" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="two" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="three" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 
<span id="four" name="one" width="5px" style="background-color:#fff;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span> 

這產生白色4個小寬度方上的綠色我的背景顏色。顯示這四個正方形,並且我想在選擇特定單選按鈕時將其顏色偏離背景改爲紅色。對於那個搖一搖,我通過一個參數javascript javascript:radioWithText('one')。正如你所看到的,該函數傳遞了一個參數ok!接下來是用我稱之爲的函數來做javascript。

function radioWithText(d) { 
    alert(d); 
    if (d.val=='one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 

你或許可以看到當無線電按鈕被選中它提醒傳遞的值(這是選擇的按鈕)。在提醒它顯示"one""two""three""four"而當第一個單選按鈕被放置相同的價值時通過"one"比較它不比較可能是什麼原因?幫幫我!
拼命提前

+2

有沒有必要把'的JavaScript:'內聯事件處理程序。 – Martijn

+0

你爲什麼要提醒'd',但比較'd.val'?如果'd'是一個字符串,你應該比較'd';如果它是一個表單元素,你想比較'd.value'。 – apsillers

回答

1

一個愚蠢的錯誤首先感謝從內嵌事件刪除javascript:

<input type="Radio" name="radio2text" value="Radiobutton1" 
onclick="radioWithText('one')" checked="checked" />OneRadio<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('two')" unchecked />TwoRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('three')" unchecked />ThreeRadio 
<br/> 
<input type="Radio" name="radio2text" value="Radiobutton2" 
onclick="radioWithText('four')" unchecked />FourRadio 

其次,你傳遞一個字符串到你的函數,所以沒有.val財產。刪除:

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
+0

感謝您的幫助 – Badrinath

1

刪除.val。您的參數是一個字符串,沒有.val

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
1

變量d認爲你需要比較值。它沒有名爲val的屬性。

比較行應該是:

if (d === 'one') 
0

沒有瓦爾需要。

function radioWithText(d) { 
    alert(d); 
    if (d == 'one') 
    { 
     var one = document.getElementById('one'); 
     //one.checked = true; 
     one.style.background="red"; 
    } 
} 
0

你不需要d.val

d變量等於'one'

function radioWithText(d) { 
alert(d); 
if (d=='one') 
{ 
    var one = document.getElementById('one'); 
    //one.checked = true; 
    one.style.background="red"; 
    } 
} 

而且,沒有必要在你的onclick事件javascript:onclick直接映射到JavaScript,不像a元素。

Fiddle here.