分组复选框,允许每组最多检查三个

Tam*_*eyc 5 html forms checkbox jquery

我想有一个应用程序,用户将为任意个人输入数据.每个人最多可以选择六个选项中的三个.我想知道如何在任何个人身上使用jquery强制最多三个选项.

这是一个示例代码

<div id="subscriber_1">
   <input type=checkbox name=national>
   <input type=checkbox name=international>
   <input type=checkbox name=business>
   <input type=checkbox name=entertainment>
   <input type=checkbox name=religion>
   <input type=checkbox name=sports>
</div>
Run Code Online (Sandbox Code Playgroud)

订户最多可以运行20个,例如subscriber_1,subscriber_2,... subscriber_20.我将非常感谢你的帮助.

kap*_*apa 11

您应该向订阅者div添加一个类,以便更容易附加事件处理程序:

<div id="subscriber_1" class="subscriber">...</div>
<div id="subscriber_2" class="subscriber">...</div>
Run Code Online (Sandbox Code Playgroud)

并使用此jQuery:

$('.subscriber :checkbox').change(function () {
    var $cs = $(this).closest('.subscriber').find(':checkbox:checked');
    if ($cs.length > 3) {
        this.checked = false;
    }
});
Run Code Online (Sandbox Code Playgroud)

jsFiddle演示

说明:在这些复选框的更改事件中,我们查找具有该类的最近父级.subscriber.我们在这个div中得到了选中的复选框.如果有超过3个(当前已检查的那个也计数),我们取消选中当前的一个.


如果您当然不想添加类,则可以使用此选择器:

$('[id^="subscriber_"] :checkbox')...
Run Code Online (Sandbox Code Playgroud)

这称为属性启动选择器.