JavaScript单选按钮问题

时间:2012-05-01 12:24:34

标签: javascript html radio-button

我需要从5张图片制作图像库。必须通过不同的单选按钮选择并显示图像。不允许提交按钮。所以到现在为止我用图像名称编写了图像输出代码。默认编号为0 =第一张图像。但问题是,当我点击不同的单选按钮时,我的功能没有输出新号码,也没有使收音机检查=“已检查”。

我的功能:

function radiocheck()
{
    for (var i=0; i < 5; i++)
    {
        if (document.forms[1].elements[i].checked=="true")
        {
            var whichISchecked = document.forms[1].elements[i].value;

            for (var z=0; z<i; z++)
            {
                document.forms[1].elements[z].checked="unchecked";
            }
            for (var z=i; z<5; z++)
            {
                document.forms[1].elements[z].checked="unchecked";
            }
        }
        else 
        {   
            document.forms[1].elements[0].checked="checked";
            var whichISchecked = document.forms[1].elements[0].value;
        }
    }
    return whichISchecked;
}

3 个答案:

答案 0 :(得分:1)

单选按钮应该自己处理检查和取消选中。请考虑此代码(也在http://jsfiddle.net/87wkC/1/

<form id="f">
<input type="radio" value="1" onclick="getValue(this.value)" name="field1">A<br>
<input type="radio" value="2" onclick="getValue(this.value)" name="field1">B<br>
<input type="radio" value="3" onclick="getValue(this.value)" name="field1">C<br>
<input type="radio" value="4" onclick="getValue(this.value)" name="field1">D<br>
<input type="radio" value="5" onclick="getValue(this.value)" name="field1">E<br>
</form>
<div id="result"></div>
<script>
function getValue(a){
    document.getElementById("result").innerHTML = a
}
</script>

单击选项按钮会清除其他按钮(通过给予它们所有相同的name来处理)并使其值可用 - 函数输出列表下方。

答案 1 :(得分:0)

将未经检查的字符串更改为false

document.forms[1].elements[z].checked="unchecked";

document.forms[1].elements[z].checked=false;

document.forms[1].elements[i].checked=="true"

不应该像

document.forms[1].elements[i].checked===true 

答案 2 :(得分:0)

a)使用jQuery,事情会变得更容易

b)你应该检查

checked == true

而不是

checked == "true"

checked = "checked" 

不做任何事情,它只是一个真/假值