(Бэкэнд-разработчик пытается сделать здесь некоторую разработку интерфейса)
У меня есть простая HTML-форма с некоторыми входными текстовыми полями и меню выбора. Когда форма отправлена, я вижу, что значения текстового поля попадают на веб-сервер, но я не вижу значения для меню выбора, поражающего сервер. Код для меню выбора:
<div class="mdc-select mdc-select--outlined mdc-select--with-leading-icon role-list">
<i class="material-icons mdc-select__icon" tabindex="0" role="button">work_outline</i>
<div class="mdc-select__anchor role-width-class">
<i class="mdc-select__dropdown-icon"></i>
<div id="role" class="mdc-select__selected-text" aria-labelledby="roles-select-label"></div>
<div class="mdc-notched-outline">
<div class="mdc-notched-outline__leading"></div>
<div class="mdc-notched-outline__notch">
<label id="roles-select-label" class="mdc-floating-label">Role</label>
</div>
<div class="mdc-notched-outline__trailing"></div>
</div>
</div>
<div class="mdc-select__menu mdc-menu mdc-menu-surface role">
<ul class="mdc-list">
<li class="mdc-list-item" data-value="0">
Painter
</li>
<li class="mdc-list-item" data-value="1">
Electrician
</li>
<li class="mdc-list-item" data-value="2">
Decorator
</li>
</ul>
</div>
</div>
Меню выбора — это компонент материального дизайна, как описано здесь.
Javascript, который я связал с этим компонентом:
mdc.select.MDCSelect.attachTo(document.querySelector('.role-list'));
const role = new mdc.select.MDCSelect(document.querySelector('.role-list'));
role.listen('change', () => {
alert(`Selected option at index ${role.selectedIndex} with value "${role.value}"`);
});
У меня сразу пара вопросов:
- Должен ли я использовать
<li>
вместо<option>
- приведенный выше код соответствует примерам, показанным на веб-сайте. - Должен ли быть атрибут
name
?