javascript - 限制每个表行的复选框选择

标签 javascript html

我尝试使用 JS 将每个表行的选定复选框限制为 3 个。每行都有一个单独的复选框和 5 个级别,只能选择 2 个,如下所示:

<tr>
    <td>
        <input type="checkbox" name="indicator[]">
    </td>
    <td>
        <input type="checkbox" name="graduations[]">
    </td>
    <td>
        <input type="checkbox" name="graduations[]">
    </td>
    <td>
        <input type="checkbox" name="graduations[]">
    </td>
    <td>
        <input type="checkbox" name="graduations[]">
    </td>
    <td>
        <input type="checkbox" name="graduations[]">
    </td>
</tr>

实际代码如http://www.javascriptkit.com/script/script2/checkboxlimit.shtml所示:

function checkboxlimit(checkgroup, limit){
    var checkgroup=checkgroup
    var limit=limit
    for (var i=0; i<checkgroup.length; i++){
        checkgroup[i].onclick=function(){
        var checkedcount=0
        for (var i=0; i<checkgroup.length;checkedcount+=(checkgroup[i].checked)? 1 : 0
            if (checkedcount>limit){
                alert("You can only select a maximum of "+limit+" checkboxes")
            this.checked=false
            }
        }
    }
}

我只能限制整个表。有没有简单的方法可以做到这一点?

最佳答案

如果您有权访问 jquery,则可以使用 parent().siblings() 将选中的复选框数量限制为每行 2 个

$(function() {
    $('input[name=graduations\\[\\]]').click(function(){
        if($(this).parent().siblings().children("input[name=graduations\\[\\]]:checkbox:checked").length >= 2)
            this.checked = false;
    });
});

http://jsfiddle.net/p2dLu2mu/

关于javascript - 限制每个表行的复选框选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26087747/

相关文章:

Javascript语法错误意外标记非法

javascript - 如何以特定顺序进行 v-for 迭代?

Javascript 没有在我放置的地方运行

javascript - 带有下载选项的 HTML 编辑器

javascript - 监听要触发的函数?

Javascript获取表中输入的值

javascript - 如何从 eBay api 获取 Json 数据以保存为 CSV 格式?

html - 打印页面中的 div 背景颜色不起作用

javascript - CSS - 一个文件中的所有媒体查询?或加载单独的 CSS 文件?

javascript 验证电话