Вам нужен еще один помощник тега (например, скрытое поле), связанный со свойством string
вашей модели представления, чтобы передать текстовую опцию из выбранного значения вместе с самим элементом <select>
:
<select asp-for="ID_Period" class="form-control input-sm"
asp-items="@(new SelectList (@ViewBag.Period, "ID_Period", "Period"))" onchange="onSelectedIndexChanged(this)">
</select>
<input asp-for="Period" type="hidden" />
Тогда вы можетеполучить выбранную текстовую опцию, используя функцию JS, связанную с событием onchange
:
function onSelectedIndexChanged(value)
{
var textValue = value.options[value.selectedIndex].text;
document.getElementById('Period').value = textValue;
// if you want to submit the form, uncomment this line below
// document.getElementById('yourformId').submit();
}
Или, если вы используете jQuery, вы можете вместо этого удалить атрибут события onchange
и обработать событие change
, чтобы присвоить значение вскрытое поле:
$('#ID_Period').change(function () {
var textValue = $('#ID_Period option:selected').text();
$('#Period').val(textValue);
// if you want to submit the form, uncomment this line below
// $('form').submit();
});
Примечание:
Рекомендуется инициировать отправку формы с помощью кнопки, а не change
элемента *1020*.