У меня есть следующий код jQuery внутри моего бритва:
$.each(CSData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
которые заполняют выпадающий список. но как я могу проверить, соответствует ли текущий элемент itemData.Value определенному значению модели, и если это так, выберите его значение. что-то вроде: -
if(itemData.Value == @Model.ID).attr('selected', true);
благодаря
Попробуйте установить значение выбора после его создания:
$.each(CSData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
});
select.val('@Model.ID');
Как насчет:
if(itemData.Value == @Html.Raw(Model.ID)).attr('selected', true);
или поместите туда кавычки, если необходимо:
if(itemData.Value == @Html.Raw("'" + Model.ID + "'")).attr('selected', true);
Вы можете сделать это после списка выпадающих списков,
if(itemData.Value == @Model.ID)
{
$("#dropdownID option[value='" + itemData.value +"']").attr("selected","selected"); // .prop('selected','selected')
}
Таким образом, ваша функция должна выглядеть так:
$.each(CSData, function (index, itemData) {
select.append($('<option/>', {
value: itemData.Value,
text: itemData.Text
}));
if(itemData.Value == @Model.ID)
{
$("#dropdownID option[value='" + itemData.Value +"']").attr("selected","selected"); // .prop('selected','selected')
}
});
// let assume the following data
var CSData = {
"itemA": "foo a",
"itemB": "foo b",
"itemC": "foo c"
};
// let assume this as the select element
var select = $("#fooData");
// let append the CSData to the select
$.each(CSData, function (index, itemData) {
// first solve how you append the select element
select
.append($("<option></option>")
.attr("value", index)
.text(itemData));
if(itemData.Value == @Model.ID){
// matched, do whatever here
}
});