0
<div class="newfile" >
    <ul>
        <li><input value="test1" type="radio" name="abc" onclick="getResults()" /></li>
        <li><input value="test2" type="radio" name ="abc" onclick="getResults()" /></li>
        <li><input value="test1" type="radio" name ="xyz" onclick="getResults()"/></li>
        <li><input value="test2" type="radio" name="xyz" onclick="getResults()"  /></li>

        </ul>
        </div>

This is my html now i want if any two radio button having same value like ="test2" or "test1" give me alert

i tried to get value in loop

<script>
function getResults() {
    var radios = document.getElementsByTagName("input");

    for (var i = 0; i < radios.length; i++) {       
        if (radios[i].checked) {
            alert(radios[i].value);
            break;
        }
    }
}

</script>

but not getting how to compare the value of two checked button and get alert.

over i want if any two radio button having same value give me alert else nothing should happen.

4

2 回答 2

0

这个怎么样:

<script type="text/javascript">
function getResults() {
    var radios = document.getElementsByTagName("input");
    var values = new Array();
    for (var i = 0; i < radios.length; i++) {       
        if (radios[i].checked) {
            var found = false; //Represents if we have a duplicate
            for(var j = 0; j < values.length; j++) { //Loop through previous items
                if(values[j] == radios[i].value) { //Duplicate?
                    found = true; // Flag it
                    break; //Exit 'j' loop
                }
            }
            values[values.length] = radios[i].value; //Add value to previous items
            if(!found) continue; //If there was no duplicate, continue to next item
            alert(radios[i].value); //There was a duplicate, alert and return
            break;
        }
    }
}
</script>
于 2013-07-01T10:15:11.190 回答
0

这有帮助吗?

function getResults() {
    var radios = document.getElementsByTagName("input");
    var dupDetector = {};
    var value;

    for (var i = 0; i < radios.length; i++) {       
        if (radios[i].checked) {
         // value = radios[i].value; // add a prefix to avoid built-in property names
            value = 'I_' + radios[i].value;
            if (dupDetector[value]) { 
                alert(radios[i].value);
                return;
            }
            dupDetector[value] = true;
        }
    }
}

感谢@meiamsome 警告我,如果value是内置对象属性,则谓词将始终为真,尽管没有重复项。为避免这种情况,请为其添加一个虚拟前缀。

于 2013-07-01T10:15:19.020 回答