Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Реакция на выбор значения из datalist (https://javascript.ru/forum/events/49482-reakciya-na-vybor-znacheniya-iz-datalist.html)

IndigoHollow 14.08.2014 22:14

Реакция на выбор значения из datalist
 
Есть текстовый input со списком datalist

<input name="filt" list="datalistyo" id="filt" />

<datalist id="datalistyo">
<option value="Арбуз" />
<option value="Пляж" />
<option value="Турник" />
</datalist>


Когда в input начинаешь вводить первые символы (например "у"), то появляется выпадающий список со значениями, в которых есть "у". Когда выбираешь какое-то значение из списка, то им заполняется input.

Вопрос: как сделать так, что бы после выбора значения из выпадающего списка, срабатывало событие (имитация нажатия клавиши Enter)?

WorM32 15.08.2014 09:05

При выборе чем, мышью? Зачем нужно имитировать Enter?

IndigoHollow 15.08.2014 10:01

Цитата:

Сообщение от WorM32 (Сообщение 326036)
При выборе чем, мышью?

Да, при выборе мышью.

Цитата:

Сообщение от WorM32 (Сообщение 326036)
Зачем нужно имитировать Enter?

Задумано так, что параллельно с тем, как в input вводятся символы, в таблице ниже отображаются те строки, значения которых удовлетворяют введенным символам. Например, если я ввожу в input "поз", то таблица динамически оставляет строки, в которых есть надписи "Позвоночник", "Поза" и т.д. Соответствующий код вызывается событием onkeyup.
Но если выбрать значение из datalist, то ничего не произойдет, т.к. события onkeyup не было. Вот я и хочу как-то заставить таблицу фильтроваться после выбора из datalist. Подскажите вариантик?

WorM32 15.08.2014 10:33

Событие onchange.

IndigoHollow 15.08.2014 11:17

Цитата:

Сообщение от WorM32 (Сообщение 326048)
Событие onchange.

Если поменять onkeyup на onchange? Не работает. И фильтрация при вводе с клавиатуры тоже перестает работать.

WorM32 15.08.2014 13:53

IndigoHollow,
не, onkeyup нужно оставить и дополнительно навесить onchange.

myshara 07.10.2014 11:12

Выбор значения из Datalist
 
Доброго времени суток!

При выполнении задачи - Обход элементов по Enter - сложилась следующая ситуация:

Работа в форме проводиться с клавиатуры (мышь используется редко, хотелось работу мышью исключить)

В Мозиле при вводе в input datalist отображается, дает стрелками выбрать значение, но при нажатии на Enter переходит к следующему input, при этом выбор из datalist не происходит.

Как решить эту задачу?

Причем в Хроме при нажатии Enter происходит выбор из datalist без перехода в следуюший input.

danik.js 07.10.2014 14:07

Если выбор не происходит, не делай preventDefault(). Чтобы форма не остылалась по ентеру сама - поменяй кнопку отправки [type=submit] на [type=button]. Если выбор все равно не происходит - возможно потому что фокус уходит до вставки браузером значения. Тогда передавай фокус с задержкой (нулевой, через setTimeout)

myshara 07.10.2014 14:27

Выбор значения из Datalist ч-з setTimeout
 
Спасибо за предложенный вариант.

Попробовал добавить следующий код:

timeout = setTimeout($next.focus(), 500);
clearTimeout(timeout);


Ситуация в Мозиле не изменилась.
Переход на след. input происходит, а выбора нет.

danik.js 07.10.2014 14:30

неправильно потому что делаешь. Иди учи основы.


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