For循环仅适用于第一个索引

时间:2015-10-08 17:00:03

标签: javascript html

For循环仅适用于第一个元素。

如果未选择单选按钮,我想提醒“未选择”。

和所选单选按钮的警报值。

function btn() {
    var radio = document.getElementsByTagName("input");
    for (var i = 0; i < radio.length; i++){
        if (radio[i].checked){
            alert(radio[i].value);
            return false;
        }
        if (!(radio[i].checked)){
            alert("none selected");
            return false;
        }
    }
}

document.getElementById('goBtn').addEventListener('click', btn);
<input name="r" value="1" type="radio">
<input name="r" value="2" type="radio">
<input name="r" value="3" type="radio">
<button id="goBtn">hm</button>

4 个答案:

答案 0 :(得分:2)

它按预期工作,你的逻辑存在缺陷。

function btn() {
    var radio = document.getElementsByTagName("input");
    for (var i = 0; i < radio.length; i++){
        if (radio[i].checked){
            alert(radio[i].value);
            return true;
        }
    }
   alert("none selected");
        return false;
}

document.getElementById('goBtn').addEventListener('click', btn);
<input name="r" value="1" type="radio">
<input name="r" value="2" type="radio">
<input name="r" value="3" type="radio">
<button id="goBtn">hm</button>

如果for找到checked值,请让for返回。否则,如果brew edit octave 未返回,则表示没有检查值。

答案 1 :(得分:1)

请检查此代码:

HTML:

<input name="r" value="1" type="radio">
<input name="r" value="2" type="radio">
<input name="r" value="3" type="radio">
<button id="goBtn">hm</button>

Javascript:

<script type="text/javascript">
function btn() {
    var radio = document.getElementsByTagName("input");
    var c=null;
    for (var i = 0; i < radio.length; i++){
        if (radio[i].checked){
           c = radio[i].value;
        }   
    }
    if(c !== null){
        alert(c);
    }else{
        alert("none selected");
    }
}
document.getElementById('goBtn').addEventListener('click', btn);
</script>

检查Jsfiddle代码

答案 2 :(得分:0)

试试这段代码:

function btn() {
    var radio = document.getElementsByTagName("input");
    for (var i = 0; i < radio.length; i++){
        if (radio[i].checked){
            alert(radio[i].value);
        }
        if (!(radio[i].checked)){
            alert("none selected");
        }
    }
    return false;
}

document.getElementById('goBtn').addEventListener('click', btn);

答案 3 :(得分:0)

从源中移除return false,因为它会停止进一步执行:

function btn() {
    var radio = document.getElementsByTagName("input");
    for (var i = 0; i < radio.length; i++){
        if (radio[i].checked){
            alert(radio[i].value);
        }
        if (!(radio[i].checked)){
            alert("none selected");
        }
    }
}

document.getElementById('goBtn').addEventListener('click', btn);
<input name="r" value="1" type="radio">
<input name="r" value="2" type="radio">
<input name="r" value="3" type="radio">
<button id="goBtn">hm</button>