简体   繁体   English

JavaScript 选中输入类型的最大数量复选框

[英]JavaScript Max number of checked input type checkbox

Using ASP.NET to generate several checkboxes.使用 ASP.NET 生成多个复选框。 Looking for a JavaScript solution that will test any checkbox starting with the name pdf* to see if more than 5 are checked, then alert over that number.寻找一个 JavaScript 解决方案,该解决方案将测试以名称pdf*开头的任何复选框,以查看是否选中了 5 个以上的复选框,然后对该数字发出警报。

There are other checkboxes I do not want this to run on that do not have the name pdf* .还有其他复选框我不希望它运行在没有名称pdf*复选框上。

Thanks in advance.提前致谢。

here is an example of my checkboxs:这是我的复选框的示例:

<td><input type="checkbox" name="pdf14" value="2250"></td>

<td><input type="checkbox" name="pdf15" value="2251"></td>

<td><input type="checkbox" name="pdf16" value="2252"></td>
 
<td><input type="checkbox" name="print" value="2253"></td> 

<<<NOT A PART OF THE COUNT <<<不是计数的一部分

var inputs = document.getElementsByTagName("input");
var numSelected = 0;
var current;

for (var i=inputs.length;i--;) {
    current = inputs[i];

    if (current.type.toLowerCase() == "checkbox" && current.checked && current.name.indexOf("pdf") == 0) {
        current++;
    };
};

if (current > 5) {
    alert("You've got " + current + " selected! :(");
}

If you happened to use jQuery, it'd be as easy as如果你碰巧使用了 jQuery,那就很简单了

var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]');

if (selectedPdfCheckboxes.length > 5) {
    alert("You've got " + selectedPdfCheckboxes.length + " selected! :(");
}

Edit:编辑:

The jQuery selector I've used ( ^= ) reads as "start with", so no * equivalent is needed.我使用的 jQuery 选择器 ( ^= ) 读作“开始于”,因此不需要 * 等效项。

The jQuery code will execute wherever it is placed, however it must be executed no sooner than document.ready() , to ensure the elements you are selecting are present in the DOM. jQuery 代码将在它放置的任何地方执行,但是它必须在document.ready()之前执行,以确保您选择的元素存在于 DOM 中。 If you place it inside document.ready, it will fire as soon the document ready event is fired.如果你把它放在 document.ready 中,它会在文档就绪事件被触发后立即触发。 You might want to place the code inside an event handler for another event.. such as the submission of a form?您可能希望将代码放在另一个事件的事件处理程序中……例如提交表单?

$(document).ready(function () {
    $("#aForm").bind('submit', function (e) {
        var selectedPdfCheckboxes = $('input:checkbox[name^=pdf]');

        if (selectedPdfCheckboxes.length > 5) {
            alert("You've got " + selectedPdfCheckboxes.length + " selected! :(");

            e.preventDefault();        
        }
    });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM