繁体   English   中英

如何设置引导多重选择最小选定值和最大选定值

[英]How to set bootstrap multiselect min selected and max selected value

我有5个选项的多选下拉列表。 我希望用户一次可以选择最多3个选项,一次可以选择最小1个选项,该怎么做?

我的代码就是这样

<select id="auditorview" multiple="multiple">
                          <option value="A1" >AHT</option>
                          <option value="A2" >Offers</option>
                          <option value="A3" >Handled</option>
                          <option value="A4" >Xyz</option>
                          <option value = "A5"> Abc</option>
        </select>
<script type="text/javascript" >
$(document).ready(function () {
$('#auditorview').multiselect({
buttonWidth: '150px'
});
});
$('#auditorview').on('change',function(){ 
foo = $(this).val();
if (!$("#auditorview option:selected").length) {
$("#auditorview option[value='"+foo[0]+"']").prop('selected', 'selected');
}

if($("#auditorview option:selected").length===4){
alert("Please select max 3  option !!!");
$("#auditorview option [value selected='"+foo[2]+"']").prop('selected', `false);`
}
})
</script>

更新:(答案根据要求更新)

HTML

<select id="demo" multiple="multiple">
<option value="">SELECT OPTION(S)</option>
<option value="Option1">Option-1</option>
<option value="Option2">Option-2</option>
<option value="Option3">Option-3</option>
<option value="Option4">Option-4</option>
<option value="Option5">Option-5</option>
<option value="Option6">Option-6</option>
</select><br/><br/>
Message: <label id="msg"></label>

JS

$(document).ready(function () {
    $("#msg").text("Select atleast One Option");
    $("#demo option").on('click', function () {
        if ($("#demo option:selected").length > 3) {
            $("#msg").text('select Max 3 option at a time');
        } else {
            $("#msg").text("you selected: " + $("#demo option:selected").length);
        }
    });
});

JSFiddle演示

找到解决方案,对我来说很完美

<select multiple id="s">
<option>Option 1
<option>Option 2
<option>Option 3
<option>Option 4
</select>
<script>
$(document).ready(function () {
 $('#s').multiselect();
})
jQuery("#s").on("change", function(){  
            var selectedOptions = $('#s option:selected');

            if ((selectedOptions.length >= 3) && (selectedOptions.length > 1) ) {
                // Disable all other checkboxes.
                var nonSelectedOptions = $('#s option').filter(function() {
                    return !$(this).is(':selected');
                });

                var dropdown = $('#s').siblings('.multiselect-container');
                nonSelectedOptions.each(function() {
                    var input = $('input[value="' + $(this).val() + '"]');
                    input.prop('disabled', true);
                    input.parent('li').addClass('disabled');
                });
            }
            else if(selectedOptions.length <= 1){
                 var SelectedOptions = $('#s option').filter(function() {
                    console.log("1 select")
                    return $(this).is(':selected');
                });
                  var dropdown = $('#s').siblings('.multiselect-container');
                    SelectedOptions.each(function() {
                    var input = $('input[value="' + $(this).val() + '"]');
                    input.prop('disabled', true);
                    input.parent('li').addClass('disabled');
                });
            }
            else {
                // Enable all checkboxes.
                var dropdown = $('#s').siblings('.multiselect-container');
                $('#s option').each(function() {
                    var input = $('input[value="' + $(this).val() + '"]');
                    input.prop('disabled', false);
                    input.parent('li').addClass('disabled');
                });
            }
        });

暂无
暂无

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

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