1

我有以下 html -

<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 小宽度的白色正方形。Those four square are shown and i want to change their color off-course background to be red when particular radio button is selected. 对于那次摇晃,我用 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"比较时通过它不比较可能是什么原因?帮帮我!
拼命一个愚蠢的错误提前谢谢

4

5 回答 5

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";
    }
}
于 2013-05-16T11:07:16.180 回答
1

删除.val. 你的参数是一个字符串,没有.val

function radioWithText(d) {
    alert(d);
    if (d == 'one')
    {
        var one = document.getElementById('one');
        //one.checked = true;
        one.style.background="red";
    }
}
于 2013-05-16T11:07:28.977 回答
1

该变量d包含您需要比较的值。它没有名为 的属性val

比较行应该是:

if (d === 'one')
于 2013-05-16T11:07:35.613 回答
0

不需要瓦尔。

function radioWithText(d) {
    alert(d);
    if (d == 'one')
    {
        var one = document.getElementById('one');
        //one.checked = true;
        one.style.background="red";
    }
}
于 2013-05-16T11:10:24.287 回答
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";
    }
}

javascript:此外,您的onclick活动中也不需要。与元素onclick不同,直接映射到 javascript 。a

在这里拉小提琴。

于 2013-05-16T11:10:59.347 回答