For Loop for选择选中的单选按钮

时间:2017-01-31 07:22:49

标签: javascript if-statement for-loop

我试图通过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>

2 个答案:

答案 0 :(得分:0)

试试这个,

<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>

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

答案 1 :(得分:0)

你需要将数组元素从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"; 
    }   
}

(在循环条件中将<=替换为<