简体   繁体   English

多选 function 中显示的值不正确

[英]The value show in the multi-select function not properly

I have 2 problems in the multi-select function:我在多选 function 中有 2 个问题:

i)The first problem, I set the value if clicked the Show Volvo and Opel and Show Volvo and Saav buttons, will follow the value shown in the multi-select box. i)第一个问题,我设置的值如果点击Show Volvo and OpelShow Volvo and Saav按钮,将遵循多选框中显示的值。 Now the error is if clicked the Show Volvo and Opel button, it can show the correct values, but if clicked the Show Volvo and Saav button, the value cannot show properly.现在的错误是如果单击Show Volvo and Opel按钮,它可以显示正确的值,但如果单击Show Volvo and Saav按钮,则无法正确显示该值。

ii)The second problem, if I clicked the Show Volvo and Opel , it just can show the checked value in the multi-select box, the value of name cannot show in the multi-select box, for example, I need to show name Volvo, Opel like below this picture: ii)第二个问题,如果我点击Show Volvo and Opel ,它只能在多选框中显示checked的值,名称的值不能在多选框中显示,例如我需要显示名称Volvo, Opel如下图:

输出

Below is my sample working coding:以下是我的示例工作编码:

 $(document).ready(function(){ $('#cars').multiselect({ nonSelectedText: 'Choose the car', enableFiltering: true, enableCaseInsensitiveFiltering: true, buttonWidth:'100%' }); }); function sendFunc(){ $(this).prop('checked',false); var cars = []; var cars = ["volvo", "opel"]; for(var i = 0; i < cars.length;i++) { $(':checkbox[value="'+cars[i]+'"]').prop('checked', 'checked'); } } function sendFunc_2(){ $(this).prop('checked',false); var cars = []; var cars = ["volvo", "saab"]; for(var i = 0; i < cars.length;i++) { $(':checkbox[value="'+cars[i]+'"]').prop('checked', 'checked'); } }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css" /> <select id="cars" value="" multiple> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="opel">Opel</option> <option value="audi">Audi</option> </select> <br><br><br> <button type="button" class="btn btn-sm btn-primary create-permission" id="btn_save" value="Save" onclick="sendFunc()">Show Volvo and Opel</button> <button type="button" class="btn btn-sm btn-primary create-permission" id="btn_save" value="Save" onclick="sendFunc_2()">Show Volvo and Saav</button>

Hope someone can guide me on how to solve this problem.希望有人能指导我如何解决这个问题。

You can iterate through options inside your select-box and where value matches set prop('selected', true);您可以遍历选择框内的选项以及value与 set prop('selected', true);匹配的位置。 and then use $('#cars').multiselect('refresh') to refresh your mutliselect.然后使用$('#cars').multiselect('refresh')刷新您的多选。

Demo Code :演示代码

 $(document).ready(function() { $('#cars').multiselect({ nonSelectedText: 'Choose the car', enableFiltering: true, enableCaseInsensitiveFiltering: true, buttonWidth: '100%' }); }); function sendFunc() { call_to_deleselect(); var cars = ["volvo", "opel"]; call_to_set_Selected(cars) } function sendFunc_2() { call_to_deleselect(); var cars = ["volvo", "saab"]; call_to_set_Selected(cars) } function call_to_deleselect() { //remove all selected $('option', $('#cars')).each(function(element) { $(this).removeAttr('selected').prop('selected', false); }); } function call_to_set_Selected(cars) { for (var i = 0; i < cars.length; i++) { //add option selected $('option[value="' + cars[i] + '"]', $('#cars')).prop('selected', true); } //or use $('#cars').multiselect('select',cars); //refresh mutlislect $('#cars').multiselect('refresh'); }
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-3-typeahead/4.0.2/bootstrap3-typeahead.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/js/bootstrap-multiselect.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-multiselect/0.9.13/css/bootstrap-multiselect.css" /> <select id="cars" value="" multiple> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="opel">Opel</option> <option value="audi">Audi</option> </select> <br><br><br> <button type="button" class="btn btn-sm btn-primary create-permission" id="btn_save" value="Save" onclick="sendFunc()">Show Volvo and Opel</button> <button type="button" class="btn btn-sm btn-primary create-permission" id="btn_save" value="Save" onclick="sendFunc_2()">Show Volvo and Saav</button>

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

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