【问题标题】:For Loop for select the checked Radio ButtonFor Loop for 选择选中的单选按钮
【发布时间】:2017-01-31 07:22:48
【问题描述】:

我尝试通过 for 循环获取所选单选按钮的值。是的,它有效。

但如果没有选择单选按钮,我需要显示一条消息。为此,我使用了一个名为 flag 的变量。但那部分不起作用。

function selRadio()
{
    var i;
    var flag="no";

    for (i=0;i<=(document.form.ra.length);i++)
    {
        if (document.form.ra[i].checked)
        {
            alert(Number(i+1));
            flag="yes"; 
        }   
    }

    if (flag=="no")
    {
        alert("click on some Radio Button");
    }
}


<form name="form">

    <p>1 <input type="radio" name="ra" id="1"></p>

    <p>2 <input type="radio" name="ra" id="2"></p>

    <p>3 <input type="radio" name="ra" id="3"></p>

    <p>4 <input type="radio" name="ra" id="4"></p>

    <p>5 <input type="radio" name="ra" id="5"></p>

    <input type="button" value="Click" onClick='seRadio();'>

</form>

【问题讨论】:

  • *修正 onClick='selRadio();'

标签: javascript if-statement for-loop


【解决方案1】:

试试这个,

<script type="text/javascript">
function selRadio()
{
    var i;
    var flag="no";

    for (i=0;i<=(document.form.ra.length);i++)
    {

        if (typeof document.form.ra[i] != 'undefined' && document.form.ra[i].checked)
        {
            alert(Number(i+1));
            flag="yes"; 
        }   
    }

    if (flag=="no")
    {
        alert("click on some Radio Button");
    }
}
</script>
<form name="form">

    <p>1 <input type="radio" name="ra" id="1"></p>

    <p>2 <input type="radio" name="ra" id="2"></p>

    <p>3 <input type="radio" name="ra" id="3"></p>

    <p>4 <input type="radio" name="ra" id="4"></p>

    <p>5 <input type="radio" name="ra" id="5"></p>

    <input type="button" value="Click" onClick="selRadio();">

</form>

在控制台中,我得到了未定义的元素索引,因此检查了未定义的条件。 我希望这能解决您的问题。

【讨论】:

    【解决方案2】:

    您需要将数组元素从0迭代到length-1,否则会遇到异常并且函数selRadio()在检查flag之前终止:

    for (i=0;i<(document.form.ra.length);i++)
    {
        if (document.form.ra[i].checked)
        {
            alert(Number(i+1));
            flag="yes"; 
        }   
    }
    

    (将循环条件中的&lt;=替换为&lt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-10
      • 2011-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-24
      • 1970-01-01
      相关资源
      最近更新 更多