Я пытаюсь выбрать / отменить выбор групп выбора, чтобы выбрать все варианты в пределах. Я использую эту библиотеку 'https://github.com/snapappointments/bootstrap-select'.
Я попытался добавить код под этим: ' clickListener: function () {', который можно найти в файле bootstrap-select.js, но не получилось. Ниже то, что я пытался добавить. Для получения копии файла bootstrap-select.js, который я использовал, найдите ссылку в конце этого вопроса, поскольку весь файл не может быть загружен из-за ограничения переполнения стека 300 000 символов.
// I have tried adding code below under this: '<b>clickListener: function() {</b>' which can be found in the bootstrap-select.js file but failed:
this.$newElement.find('li').on('click', function(e) {
e.preventDefault();
console.log('Bootstrap-Select.js - line #1438');
var base = $(this).closest(".bootstrap-select");
var select = base.find("select");
// check if this .dropdown-header is part of bootstrap-select AND multiple or not
if (base.length && select.prop("multiple")) {
var group = $(this).data("optgroup") - 1;
var group2 = group + 1;
var select = $(this).closest(".bootstrap-select").find("select");
if ($(this).hasClass("dropdown-header")) {
if (base.find("li[data-optgroup=" + group2 + "]:not(.selected)").length === 1)
$(this).closest(".bootstrap-select").find("select > optgroup:eq(" + group + ") > option").prop("selected", false);
else
$(this).closest(".bootstrap-select").find("select > optgroup:eq(" + group + ") > option").prop("selected", true);
select.selectpicker('render');
//select.change();
}
}
});
<!DOCTYPE html>
<html>
<head>
<title>Bootstrap-select Tests (Bootstrap 4)</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.9/css/bootstrap-select.css">
<style>
body {
padding-top: 70px;
}
</style>
</head>
<body>
<select class="selectpicker" multiple data-live-search="true">
<optgroup label="Fruit">
<option>Apple</option>
<option>Orange</option>
</optgroup>
<optgroup label="Vegetable">
<option>Corn</option>
<option>Carrot</option>
</optgroup>
</select>
<!-- To be continued -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.bundle.min.js"></script>
<script src="../dist/js/bootstrap-select.js"></script>
</body>
</html>
Копия файла bootstrap-select.js находится здесь (поскольку размер файла превышает ограничение в 300000 символов в StackOverflow, следовательно, не может быть добавлен):
https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.13.9/js/bootstrap-select.js