У меня есть несколько полей выбора с множественным выбором в моей форме, и чтобы они выглядели хорошо, я использую выбор начальной загрузки.Поскольку ядро этого приложения разработано в Express, я не могу получить значения, которые выбирает пользователь, потому что при начальной загрузке создается div и список, с которыми пользователь фактически взаимодействует.Чтобы решить эту проблему, я пытаюсь написать некоторый javascript / jquery для добавления selected = true к каждой выбранной опции.Я понял это, но потом понял, что если я отменю выбор опции, она все равно будет отображаться как selected = true.
Я пытался использовать $(this).find("option:not(:selected)").get(i).setAttribute('selected', false);
Однако это выдает ошибку после многократного выбора.
HTML
<label for="performThese">I will perform</label>
<select class="selectpicker show-tick form-control" multiple id="performThese" name="performThese" data-style="btn-secondary" title="Choose your option..">
<option value="residential_BPO">Residential BPOs</option>
<option value="commercial_valuation">Commercial Property Valuations</option>
<option value="condition_report">Property Detail & Condition Reports</option>
</select>
Javscript
$(function() {
// Style only selects with the selectpicker class
$('.selectpicker').selectpicker();
// Get the target multiple select box for testing
let selectTarget = document.getElementsByName('performThese');
// Wait for a change
$(selectTarget).on('change', function(e){
// How many options selected?
let selectTargetLength = $(this).find("option:selected").length;
// Make a blank array
let selectValue = [];
let i = 0;
while (i < selectTargetLength) {
// Grab value of each choosen option in case needed for evaluation
selectValue[i] = $(this).find("option:selected").get(i).value;
// Make options choose show as selected
$(this).find("option:selected").get(i).setAttribute('selected', true);
i++
}
});
})
Я ожидал, что выбрано = true, чтобы исчезнуть, когда я отменил выбор записи.