Как захватить все выбранные элементы в списке опций Multiselect и связать, используя jQuery
Я хочу записать все выбранные элементы в таблицу базы данных на стороне сервера через Ajax. Я не хочу вызывать функцию и писать о каждом действии выбора / отмены выбора. Я хочу позволить пользователю выбрать и отменить выбор всех требуемых опций, а затем я хочу сделать вызов ajax и записать результаты один раз в базу данных.
Я хочу справиться с этим в JQuery.
У меня есть скрипт Ajax и скрипт обновления БД на стороне сервера - без проблем.
Каков наилучший способ перехватить несколько выбранных элементов и сделать вызов ajax?
Будет ли это, когда фокус покидает поле выбора? Или какой-то другой, лучший метод?
Спасибо, что указали мне в правильном направлении.
Поправка № 1
Это выглядит как .change()
это единственный способ пойти сюда... за исключением, конечно, добавления кнопки, как это предлагается в ответах. Вариант кнопки - это не тот способ, которым я хотел бы использовать приложение. Я не могу захватить .focus()
или же .blur()
или же .focusout()
на моем <select>
элемент.
Поправка № 2
Пробовал это - не работает
$( 'select.driverItems' ).on('blur',function(){
alert('focused out');
console.log( $(this).val() );
});
Пробовал это - не работает
$( 'select#driverIDs_0' ).on('blur',function(){
alert('focused out');
console.log( $(this).val() );
});
Попробовал это - работает!!
$( 'select.driverItems' ).change(function() {
alert('focused out');
console.log( $(this).val() );
});
2 ответа
Технически, нет никакого способа узнать наверняка, что пользователь сделал с множественным выбором, поскольку есть другие факторы, где пользователь оставит процесс выбора (заполнение других полей, alt-tab, выбор сообщений для чтения и т. Д.) запуск события потерянного фокуса.
Насколько это возможно, вам также не нужно совершать многократные обходы на сервер, поэтому у вас есть хорошая идея не обновляться при выборе / отмене выбора.
Единственный правдоподобный способ сделать это без нежелательных результатов - добавить кнопку, запускающую Ajax.
- Затем позвольте пользователю выбрать то, что он хочет
- Добавить кнопку в HTML
- И когда кнопка нажата
- Получить все выбранное значение в jquery
- И сделать вызов Ajax и сохранить значения