Javascript 如何计算HTML名称数组属性中的项目数?

Javascript 如何计算HTML名称数组属性中的项目数?,javascript,jquery,html,checkbox,count,Javascript,Jquery,Html,Checkbox,Count,我有3个复选框,用户只能选择其中的1或2个。如果用户选中3复选框,我将显示一条带有jQuery的消息,说明您不能选择3项 <input type="checkbox" value="Walk" name="sports[]"> <input type="checkbox" value="Swim" name="sports[]"> <input type="checkbox" value="Run" name="sports[]"> 是否可以计算sport

我有3个复选框,用户只能选择其中的1或2个。如果用户选中3复选框,我将显示一条带有jQuery的消息,说明您不能选择3项

<input type="checkbox" value="Walk" name="sports[]">
<input type="checkbox" value="Swim" name="sports[]">
<input type="checkbox" value="Run"  name="sports[]">

是否可以计算sports[]数组中的项目数?

计算名称为sports[]的复选框数,如果计数为3,则抛出错误

var count = $('input[name="sports[]"]:checked').length;
if(count >=3){ // stop the form submit and do alert messages }

下面的解决方案应该适合您

<input type="checkbox" value="Walk" name="sports[]" class="myCheckBox">
<input type="checkbox" value="Swim" name="sports[]" class="myCheckBox">
<input type="checkbox" value="Run"  name="sports[]" class="myCheckBox">

$(".myCheckBox").change(function() {
    if($('input[name="sports[]"]:checked').length > 2) {
        //Do your error stuff
    }
});

您可以使用jQuery进行如下检查:

$(document).ready(function(){
    $('input^="sports[]"').on('click',function(){
        var total_checked = $('input^="sports[]":checked').length();
        if(total_checked >= 2)
        {
            alert("You can check any two options.");
            return false;
        }
    });
});

在jquery中使用:checked选择器检查选中项的长度,如果选择了其中3个,则将其设为未选中

$'input[name=sports[]:复选框'.changefunction{ 如果$'input[name=sports[]]:选中。长度>2 { 警报您不能选择3个项目; 这个.checked=false; } };
是的,可以对sports[]数组中的项目进行计数。您可以在进行分析时映射标记

让input=document.getElementsByTagName'input'; 让result=[…input].mapx=>JSON.parsex.name.replace'sports', 让count=result.mapx=>x.length; 控制台。记录“数组”,结果; 控制台。记录“内部计数”,计数; .作为控制台包装{最大高度:100%!重要;顶部:0;}
是的,这是可能的。您可以使用$'input[name=sports[]]:checked'.length;检查号码;。不过,您仍需要在输入上的更改事件处理程序中对其进行包装。是否要匹配属性名称数组中的运动数?例如,name=sports[racquetball,cricket]?@SvenTheSurfer我只需要数一数所选的运动项目。@SvenTheSurfer,我不明白。@himanshhuupadhyay:像这样要求回答接受不是很合适的网站礼仪。@Cᴏʀʏ有时候需要提醒对方,因为一旦他们得到解决方案,他们就会继续前进,不会礼貌地投票或接受答案。诚然,用户并不总是擅长投票,但如此迅速地要求接受对其他回答者来说是不公平的,因为他们可能会比你晚些时候提供不同/更好/更深入的答案。我不会担心一些想象中的互联网点。查看社区对此的一些想法。由于您添加了一个方便的类名,您也可以在.length的选择器中使用它