1

我需要从 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;
}
4

3 回答 3

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>

单击一个选项按钮会清除其他按钮(通过赋予它们 all same 来处理name)并使其值可用 - 该函数在列表下方输出该值。

于 2012-05-01T12:40:10.130 回答
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 
于 2012-05-01T12:29:28.417 回答
0

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

b) 你应该检查

checked == true

并不是

checked == "true"

checked = "checked" 

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

于 2012-05-01T12:29:32.160 回答