Получение значения из выпадающего списка и создание следующего поля в столбце зависимым от него
Мне нужно стать зависимым, одно поле от другого.
список стран и языков имеет список параметров
Если в выпадающем списке выбрана первая опция или, например, 5, класс:selectboxlist
тогда я хотел бы установить значение '-1' во втором столбце class:days_tpu
То, что я смог сделать, находится в нижней части поста
Смотреть:
<table> <tr> <td id="td01" class="@userColor1">@Html.DropDownListFor(m => m.Model1[nr_rows].PrzyczynaNieobecnosci, new SelectList(Enum.GetValues(typeof(Urlopy))), " ", new { @class = "selectboxlist" })</td> <td id="td01">@Html.TextBoxFor(m => m.Model1[nr_rows].DniOdpracowania, new { @class = "days_tpu", @readonly = true })</td> </tr> </table>
Преобразование в обычный html:
<select class="selectboxlist" id="Model1_0__PrzyczynaNieobecnosci" name="Model1[0].PrzyczynaNieobecnosci"><option value=""> </option> <option>dzwol</option> <option>szkol</option> <option>chor</option> <option>opie</option> <option>odziec</option> <option>nn</option> // ... <option>psz</option> <option>uż</option> <option>chopie</option> </select> <input class="days_tpu" id="Model1_0__DniOdpracowania" name="Model1[0].DniOdpracowania" readonly="True" type="text" value="0">
Модель:
public Urlopy? PrzyczynaNieobecnosci { get; set; } public enum Urlopy { dzwol = 1, szkol = 2, chor = 3, opie = 4, odziec = 5, // .... chopie = 16 }
Что я уже пробовал:
Я попробовал: (но это совсем не работает)
const table = document.querySelector('table'); table.addEventListener('change', function (e) { const classList = e.target.classList; if (classList.contains('selectboxlist') ) { const tr = e.target.parentNode.parentNode; const [selectboxlist, days_tpu] = [...tr.querySelectorAll('.selectboxlist,.days_tpu')]; if(selectboxlist.value == 1) { days_tpu.value = 1 } // or if(selectboxlist.value == dzwol ) { days_tpu.value = 1 } } });