js как при клике на элемент открывать список select
Как сделать клик по элементу после чего открывается список select
То есть, при нажатие на элемент firstlevel - открывается select.lastlevel
Подскажите пожалуйста, как это сделать
Пример
<span class="firstlevel">button</span>
<select class="lastlevel">
<option>one</option>
<option>tho</option>
<option>three</option>
</select>
Ответы (2 шт):
Автор решения: dresser
→ Ссылка
const span = document.querySelector('.firstlevel')
const select = document.querySelector('.lastlevel')
let toggleState = false
function toggle() {
span.addEventListener('click', () => {
toggleState = !toggleState
return toggleState ? (select.size = select.length) : (select.size = 1)
})
}
span.onclick = toggle
Автор решения: DiD
→ Ссылка
Просто перефразирую ответ @dresser.
Это единственный способ, создающий имитацию открытия <select>.
Вопрос с 2008 года поднимался уже многократно.
let firstlevel = document.querySelector('.firstlevel')
let lastlevel = document.querySelector('.lastlevel')
firstlevel.onclick = ()=>{
lastlevel.size = lastlevel.length;
lastlevel.focus();
};
lastlevel.onchange = lastlevel.onclick = lastlevel.onblur = ()=>{
lastlevel.size = 1;
};
.lastlevel{
position: absolute;
}
<span class="firstlevel">button</span>
<select class="lastlevel">
<option>one</option>
<option>tho</option>
<option>three</option>
</select>