Как захватить все выбранные элементы в списке опций 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 и сохранить значения
Другие вопросы по тегам