У меня есть код ниже, где я создаю динамические элементы выбора. Элемент управления отображается в браузере без проблем. Однако выбранная опция не является той, которая выбрана на экране. На экране всегда отображается последний элемент.Выберите неработающие динамически созданные элементы выбора. Всегда выбирать последнюю опцию.
Что странно, если I View Source, свойство «select» находится на выбранном вами параметре. Тем не менее, отображается последний параметр.
Я пробовал использовать .attr («selected», value === selectOption.SelectedValue)), и это даже не добавляет свойство «selected» в элемент option.
Единственное, что работает, это выбрать значение после того, как элемент «Элемент» был добавлен в мой тег div (commonSubjectivesWindow). Но это кажется мне взломанным.
Была проблема с этой проблемой в течение нескольких часов. Любые предложения будут полезны.
function createSelectElement(commonSubjective, selectOption) {
var name = "select" + commonSubjective.Id;
var selectElement = $("<select>").attr("name", name);
//Tried, does not work
//$.each(selectOption.Options, function (key, value) {
// selectElement.append($("<option>").val(value).text(value).prop("selected", value === selectOption.SelectedValue));
//});
$.each(selectOption.Options, function (key, value) {
selectElement.append($("<option>").val(value).text(value).attr("selected", value === selectOption.SelectedValue));
});
return selectElement;
}
function formatCommonSubjectiveText(commonSubjective) {
if (commonSubjective.SelectOptions.length > 0) {
var i = 0;
$.each(commonSubjective.SelectOptions, function() {
var selectElement = createSelectElement(commonSubjective, this);
var placeHolder = "{" + i + "}";
commonSubjective.Text = commonSubjective.Text.replace(placeHolder, selectElement.prop("outerHTML"));
i++;
});
}
return commonSubjective.Text;
}
function loadCommonSubjectives() {
var commonSubjectivesJson = JSON.parse($("#commonSubjectivesHidden").val());
$.each(commonSubjectivesJson, function() {
$("#commonSubjectivesWindow").append($("<span>").append(formatCommonSubjectiveText(this)).prepend(
$("<input>").attr("name", "CommonSubjectivities").attr("type", "checkbox").val(this.Id).prop("checked", this.IsSelected)
).after("</br></br>"));
});
}
Вы можете связать скрипку? –
Я посмотрю, смогу ли я – Richard