需要在jquery中提醒未经检查的单选按钮

时间:2015-03-10 11:28:29

标签: javascript jquery jquery-ui

实施例

  <div id="radio">
<input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Choice 1</label>
<input type="radio" id="radio2" name="radio" value="2"  /><label for="radio2">Choice 2</label>
<input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Choice 3</label>

 <div id="radio">
<input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Choice 1</label>
<input type="radio" id="radio2" name="radio" value="2" checked="checked" /><label for="radio2">Choice 2</label>
<input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Choice 3</label>

  <div id="radio">
<input type="radio" id="radio1" name="radio" value="1" /><label for="radio1">Choice 1</label>
<input type="radio" id="radio2" name="radio" value="2" checked="checked" /><label for="radio2">Choice 2</label>
<input type="radio" id="radio3" name="radio" value="3" /><label for="radio3">Choice 3</label>

上述无线电组是动态生成的。 我需要在其中识别未检查的无线电组。

1 个答案:

答案 0 :(得分:1)

首先,单选按钮用于您希望用户一次只选择一个按钮。所以,我认为你宁愿使用复选框,而不是单选按钮。

话虽如此,我认为使用jQuery实现目标的最简单方法是使用:not选择器。此代码将为您提供未选中的所有复选框:

var notChecked = $('input:not(:checked)')

这是演示文稿的小提琴:http://jsfiddle.net/nasuf96b/

显然,必须要进行一些错误处理,但是你明白了。

祝你好运。

修改

我现在看到你在追求什么。看看这个小提琴:http://jsfiddle.net/nasuf96b/1/。 它会告诉您组中是否没有选择任何内容,我认为这是您想要做的。

$('input').on('click', function() {
    check_all();   
});

function check_all() {
    var outputText = 'These are not checked: ';
    var myDivs = $('div.radio');
    for (var i=0; i<myDivs.length; i++) {
        var isChecked = false;
        var childInputs = myDivs[i].getElementsByTagName('input');
        for (var j=0; j<childInputs.length; j++) {
            if (childInputs[j].checked == true) {
                isChecked = true;
            }
        }
        if (isChecked == false) {
            outputText += (i+1) +', ';   
        }
    }
    alert(outputText.slice(0, -2));
}