Я пытался реализовать решение, предложенное в Как выбрать конкретную опцию в элементе 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);
}
});
}