Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Select multiple бросает два события change. (https://javascript.ru/forum/events/69871-select-multiple-brosaet-dva-sobytiya-change.html)

SunYang 24.07.2017 17:19

Select multiple бросает два события change.
 
Столкнулся с удивительной проблемой мультиселекта на Chrome на Android.

Есть мультиселект. На нем висит обработчик onchange.
Жмем на select, появляется нативное окошко выбора, выбираем только один option, жмем ОК - срабатывает событие change.
Далее, тыкаем в любое место страницы, снова срабатывает событие change.
(просто убирается фокус с селекта)

Причем, если выбрать несколько option, то событие отрабатывает только один раз, как надо.

Кто-нибудь сталкивался с такой проблемой?

Как устранить повторный выброс события change?

Dilettante_Pro 25.07.2017 13:05

Rise,
Я посмотрел - в смартфоне такой селект после клика по полю ввода отображается в виде всплывающего окна с чекбоксами по списку опций и кнопкам ОК и Отмена.
И, таки да, если выбрано 2 или более чекбокса - при нажатии ОК возникает событие change. Если потом кликать вокруг - ничего не происходит.
Если же выбрана одна опция - после ОК событие change, если кликнуть вокруг - еще один change.

<select multiple id="sel">
    <option>Чебурашка</option>
    <option>Крокодил Гена</option>
    <option>Шапокляк</option>
    <option>Крыса Лариса</option>
</select>
<script>
sel.onchange = function() {
   alert("Change");
}
</script>


Часовой пояс GMT +3, время: 12:35.