首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery:如何检查是否选中了div中的所有单选按钮

jquery:如何检查是否选中了div中的所有单选按钮
EN

Stack Overflow用户
提问于 2011-08-03 09:08:08
回答 8查看 40.6K关注 0票数 22

我的html如下所示

代码语言:javascript
复制
<div id="div1">
  <input type="radio" name="r1" value="v1" />
  <input type="radio" name="r1" value="v2" />
  <input type="radio" name="r1" value="v3" />

  <input type="radio" name="r2" value="v1" />
  <input type="radio" name="r2" value="v2" />
  <input type="radio" name="r2" value="v3" />

  <input type="radio" name="r3" value="v1" />
  <input type="radio" name="r3" value="v2" />
  <input type="radio" name="r3" value="v3" />
</div>

单选按钮是在我的html上动态生成的,所以在那个div中,我不知道我有多少个单选按钮。

我想确保用户在提交表单之前为每个单选按钮选择一个值,如何检查div中的所有单选按钮都选中了一个值?

谢谢

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-08-03 10:03:00

稍微调整一下你的超文本标记语言--把每个单选组包装在(比如说)一个中。然后,当用户提交表单时,您可以执行以下操作来验证表单:

代码语言:javascript
复制
if ($('div:not(:has(:radio:checked))').length) {
    alert("At least one group is blank");
}

当然,这可以通过各种方式进行调整以适应您的HTML。这个想法来自于Find all radio groups which haven't been selected

票数 24
EN

Stack Overflow用户

发布于 2011-08-03 09:13:31

代码语言:javascript
复制
$(":radio").change(function() {
    var names = {};
    $(':radio').each(function() {
        names[$(this).attr('name')] = true;
    });
    var count = 0;
    $.each(names, function() { 
        count++;
    });
    if ($(':radio:checked').length === count) {
        alert("all answered");
    }
}).change();

演示:http://jsfiddle.net/yFaAj/15/

票数 33
EN

Stack Overflow用户

发布于 2011-08-03 09:54:38

此处为解决方案 http://jsfiddle.net/QxdnZ/1/

代码语言:javascript
复制
    var checked = $("#div1 :radio:checked");
    var groups = [];
    $("#div1 :radio").each(function() {
        if (groups.indexOf(this.name) < 0) {
            groups.push(this.name);
        }
    });
    if (groups.length == checked.length) {
        alert('all are checked!');
    }
    else {
        var total = groups.length - checked.length;
        var a = total>1?' groups are ':' group is ';

        alert(total + a + 'not selected');
    }
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6920606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档