Выбор выбранных опций с помощью javascript функций - PullRequest
0 голосов
/ 04 мая 2020

Я пытался реализовать решение, предложенное в Как выбрать конкретную опцию в элементе SELECT в jQuery? безрезультатно. Либо добавление Chosen к миксу делает решение недействительным, либо я допустил некоторую ошибку кодирования, которую не можем найти мой компилятор и я.

My html:

<select name="superType" class="chosen-select chosen-select-creation-allowed" id="superType" style="width: 300px; display: none;" onchange="loadInheritance()" multiple="">
  <option style="padding-left:20px;" value=""></option><option style="padding-left:0px" value="28">concept</option>
  <option style="padding-left:20px" value="30">human</option>
</select>

Когда я помещаю следующее после этого, я ожидаю, что один из них добавит к параметру value = "30" над атрибутом 'selected':

      //$('#superType option[value="30"]').prop('selected', true);
        $('#superType option[value="30"]').attr('selected', 'selected');
        $('.chosen-select').trigger("chosen:updated");

Вместо этого ничего не происходит, как в соответствии с моделью DOM инспектор и визуальное представление.

Я хочу, чтобы этот выбор происходил внутри функции, но когда я пытаюсь создать ссылку на вариант выше, я получаю сообщение об ошибке:

Syntax error, unrecognized expression: '#superType option[value="30"]'

Вот javascript, генерирующий это (обрабатывает 'cid'):

            //now go back through and select the ones this CommonNoun already had from before
            $.ajax({
                url: '/BackToTech/server?function=getExistingSuperTypes',
                type: 'POST',
                success: function (response){
    //              var target = $("#superType");           
                    var target = "#superType";          
                    selectOptions(response, target, 0);
                    $('.chosen-select').trigger("chosen:updated");
                }
            });

...

function selectOptions(obj, target) {
    var concepts = obj; 
    $.each(concepts, function(concept, value) {  
        alert(concept, value);
        if (concept == "cid") {
            optionValue = obj[concept].oid;
            $("'" + target + " option[value=\"" + optionValue + "\"]'").attr('selected', 'selected');
        } else { 
            selectOptions(value, target);
        }
    });
} 

1 Ответ

1 голос
/ 05 мая 2020

Вам не нужны одинарные кавычки вокруг селектора css.

$(`${target} option[value="${optionValue}"]`).attr('selected', 'selected');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...