Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS逻辑-添加2个多选复选框_Javascript_Jquery - Fatal编程技术网

Javascript JS逻辑-添加2个多选复选框

Javascript JS逻辑-添加2个多选复选框,javascript,jquery,Javascript,Jquery,只是需要一点JS逻辑的帮助,因为我对它很陌生。我有2个单独的多选下拉复选框列表,用户可以从中选择。到目前为止,他们只能从每一项中选择不超过5项。我如何设置它,它添加了两个下拉列表,只允许两者合计5个 <select id="dropdown1" multiple="multiple" class="multiselect"> <select id="dropdown2" multiple="multiple" class="multiselect"> 我假设我将使用id

只是需要一点JS逻辑的帮助,因为我对它很陌生。我有2个单独的多选下拉复选框列表,用户可以从中选择。到目前为止,他们只能从每一项中选择不超过5项。我如何设置它,它添加了两个下拉列表,只允许两者合计5个

<select id="dropdown1" multiple="multiple" class="multiselect">
<select id="dropdown2" multiple="multiple" class="multiselect">
我假设我将使用id,而不仅仅是.multiselect类,然后添加它们。类似于if语句中的dropdown1+dropdown2>5。我只是不知道正确的语法,有人可以帮我

如果您不熟悉我使用的jQuery小部件:

每请求用户689

$(document).ready(function() {
    $(".multiselect").multiselect({
    header: "Choose up to 5 areas",
    click: function(event,ui){
            if($(".multiselect").multiselect("getChecked").map(function(){
                return this.value;    
                }).size() > 5){ return false;}},
      selectedList:5
    });

使用方法的语法为:

$("#multiselect").multiselect("method_name");
例如,要获取所有单击复选框的数组:

var array_of_checked_values = $(".multiselect").multiselect("getChecked").map(function(){
return this.value;    
}).get();
在您的情况下,您只需要获取复选框的数量,即数组的长度:

if($(".multiselect").multiselect("getChecked").map(function(){
return this.value;    
}).size() > 5){ return false;}
您使用的方法将单独访问每个复选框,这将使事情变得复杂。

您可以这样做

当数字超过5时,您将显示一条消息并取消选择该项目

使用Jquery的Javascript


您提到的源代码显示getchecked返回一个包含所有选中值的数组,类似于$document.readyfunction{$.multiselect.multiselectgetChecked{标题:最多选择5个区域,单击:functionevent,ui{if$this.multiselectwidget.findgetChecked.length>5{return false;},selectedList:5};不,请参考链接中给出的语法。我重申我是js新手。我知道我需要什么,但不知道如何使用它。我的问题中的“解决方案”也一样。知道什么vs知道如何。我的答案对你有用吗?如果$this.multiselectgetChecked.length>5{返回false;因为有些人不限制5。如果我这样做的话it@user3191137你是什么意思?它不起作用。我可以在第一个小部件中单独选择6个或更多。@user3191137你是对的,这是我的错。我编辑了答案,试图让它起作用,但仍然没有成功。失去了所有功能,并从“}得到语法错误'在最后一行$document.readyfunction{$.multiselect.multiselect{标题:最多选择5个区域,单击:functionevent,ui{if$.multiselect.multiselectgetChecked.mapfunction{return this.value;}.size>5{return false;}},//selectedList:5};当我尝试这个时,我完全失去了小部件的功能。真的吗?哦,你使用哪个库?好的,让我看看我是否可以实现它,因为我从未使用过它。如果你得到一个解决方案,请使用这个,忘了这个注释哈哈。很幸运,逻辑工作正常。我只丢失了复选框部分。除了我之外,它仍然验证了这两个库的总数为5ts仅作为html“multiselect”而不是使用小部件。
if($(".multiselect").multiselect("getChecked").map(function(){
return this.value;    
}).size() > 5){ return false;}
$(".multiselect option").click(function(){      
        if($(".multiselect").children(":checked").length > 5){
            if($(this).is(":checked")){
                $(this).removeAttr("selected");
                alert("You can select only 5 items");
            }
        }
    }
);