【问题标题】:JavaScript radio button issuesJavaScript 单选按钮问题
【发布时间】:2015-10-21 00:34:18
【问题描述】:

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

【问题讨论】:

    标签: javascript html radio-button


    【解决方案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 来处理)并使其值可用 - 函数在列表下方输出。

    【讨论】:

    • 非常感谢。但现在我只得到输出值,不知道如何使用它来选择图像。
    • 嗯,这不是你的问题。我的函数getValue() 给出的结果与你的函数radiocheck() 相同。效果如何?
    • 现在可以了。我做了每个图像值=“ ”现在,我在选中单个窗口屏幕时将图像作为输出获得。并且可以从这一点操纵宽度或高度吗?值标签可以有用于操作宽度和高度的变量吗?
    • 这个问题的范围很广,所以不能很好地处理它。尝试一些东西(例如,您可以将几个变量传递给处理函数并返回一个对象)。如果你没有得到任何结果,就问另一个关于你做了什么的问题。如果 this 对这个问题的回答没问题,请接受它。
    【解决方案2】:

    将未选中的字符串更改为 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 
    

    【讨论】:

      【解决方案3】:

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

      b) 你应该检查一下

      checked == true
      

      而不是

      checked == "true"
      

      checked = "checked" 
      

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

      【讨论】:

      • 好的,照你说的做了。现在我无法选择另一个单选按钮,它始终默认 = 0;
      • 根本不起作用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2016-01-03
      • 2021-01-24
      • 2015-12-25
      相关资源
      最近更新 更多