Member 14713380 Ответов: 0

Получение значения из выпадающего списка и создание следующего поля в столбце зависимым от него


Мне нужно стать зависимым, одно поле от другого.

список стран и языков имеет список параметров

Если в выпадающем списке выбрана первая опция или, например, 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
        }


       
    }
});

0 Ответов