I have implemented coreui library for multi-select. I have read the docs but I couldn't reset from the selected field. here is my code
document.addEventListener('DOMContentLoaded', function() {
const resetButton = document.getElementById('resetButton');
const multiSelects = document.querySelectorAll('.form-multi-select');
resetButton.addEventListener('click', function() {
// Loop through each multi-select and reset its value
multiSelects.forEach(select => {
// Deselect all options
for (let i = 0; i < select.options.length; i++) {
select.options[i].selected = false; //Deselect
}
const coreUISelect = select.CoreUISelect; // Access the CoreUI instance
if (coreUISelect) {
coreUISelect.setValue([]); // Clear selected values using CoreUI API
}
// Update the placeholder (first disabled option)
select.selectedIndex = 0; // Resets to the first option which is disabled
});
// Optionally reset the date fields
document.getElementById('date-from').value = '';
document.getElementById('date-to').value = '';
});
});
<script src="https://cdn.jsdelivr.net/npm/@coreui/coreui-pro@5.5.0/dist/js/coreui.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/@coreui/coreui-pro@5.5.0/dist/css/coreui.min.css" rel="stylesheet" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="filterForm" class="form-inline gap-2">
<div class="form-group mb-2">
<select id="sales-director-filter" class="form-multi-select" multiple data-coreui-search="true" data-coreui-selection-type="counter" data-coreui-placeholder="Sales Director">
<option value="" disabled selected>Sales Director</option>
<option value="Jayson Cheves">Jayson Cheves</option>
<option value="Ahmed Mohamed">Ahmed Mohamed</option>
<option value="Rajesh Sankaran">Rajesh Sankaran</option>
<option value="Ashley Philips">Ashley Philips</option>
</select>
</div>
<div class="form-group mb-2">
<select id="rsm-filter" class="form-multi-select" multiple data-coreui-search="true" data-coreui-selection-type="counter" data-coreui-placeholder="RSM's">
<option value="" disabled selected>RSM's</option>
<option value="Karim Dhanani">Karim Dhanani</option>
<option value="Anayeli Valle">Anayeli Valle</option>
<option value="Joel Ramirez">Joel Ramirez</option>
</select>
</div>
<div class="form-group mb-2">
<select id="dsm-filter" class="form-multi-select" multiple data-coreui-search="true" data-coreui-selection-type="counter" data-coreui-placeholder="DSM's">
<option value="" disabled selected>DSM's</option>
<option value="Karim Dhanani">Karim Dhanani</option>
<option value="Anayeli Valle">Anayeli Valle</option>
<option value="Joel Ramirez">Joel Ramirez</option>
</select>
</div>
<div class="form-group mb-2">
<select id="location-filter" class="form-multi-select" multiple data-coreui-search="true" data-coreui-selection-type="counter" data-coreui-placeholder="Location">
<option value="" disabled selected>Locations</option>
<option value="10th Street">10th Street</option>
<option value="13th Street">13th Street</option>
<option value="1st Street">1st Street</option>
<option value="28th Street">28th Street</option>
</select>
</div>
<div class="form-group mb-2">
<input type="date" class="form-control" id="date-from">
</div>
<div class="form-group mb-2">
<input type="date" class="form-control" id="date-to">
</div>
<div class="ml-auto d-flex gap-2">
<button type="button" class="btn btn-primary">Search</button>
<button id="resetButton" type="reset" class="btn btn-primary">Reset</button>
<button type="button" class="btn btn-primary">Export</button>
</div>
</form>
const coreUISelect = select.CoreUISelect; // Access the CoreUI instance
This isn't actually getting you the MultiSelect instance.
Use the following instead, and then call the deselectAll
method on the instance:
const coreUISelect = coreui.MultiSelect.getInstance(select); // Access the CoreUI instance
if (coreUISelect) {
coreUISelect.deselectAll(); // Clear selected values using CoreUI API
}
And the following // Update the placeholder
part seems unnecessary.