如何使用jQuery捕获多选选项列表和绑定中的所有选定项

如何使用jQuery捕获多选选项列表和绑定中的所有选定项,jquery,ajax,multi-select,blur,focusout,Jquery,Ajax,Multi Select,Blur,Focusout,我想通过Ajax将所有多选选项项写入服务器端数据库表。我不想调用该函数并写入每个选择/取消选择操作。我想让用户选择和取消选择所有需要的选项项,然后我想进行ajax调用,并将结果一次性写入数据库 我想在jQuery中处理这个问题 我已经让Ajax脚本和服务器端DB更新脚本正常工作了——没问题 捕获多选项并进行ajax调用的最佳方法是什么 焦点是否会离开选择框?还是其他更好的方法 谢谢你给我指明了正确的方向 修正案1 看起来是这样的。改变是唯一的办法……当然,除了答案中建议的添加按钮。按钮选项不是我

我想通过Ajax将所有多选选项项写入服务器端数据库表。我不想调用该函数并写入每个选择/取消选择操作。我想让用户选择和取消选择所有需要的选项项,然后我想进行ajax调用,并将结果一次性写入数据库

我想在jQuery中处理这个问题

我已经让Ajax脚本和服务器端DB更新脚本正常工作了——没问题

捕获多选项并进行ajax调用的最佳方法是什么

焦点是否会离开选择框?还是其他更好的方法

谢谢你给我指明了正确的方向

修正案1

看起来是这样的。改变是唯一的办法……当然,除了答案中建议的添加按钮。按钮选项不是我希望应用的方式。我似乎无法捕捉。聚焦或。模糊或。聚焦我的元素

修正案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' ).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() );
  });
然后让用户选择他想要的任何东西 在Html中添加一个按钮 当按下按钮时 获取jquery中的所有选定值 并进行Ajax调用并保存值
从技术上讲,无法确定用户是否使用了multiselect,因为还有其他因素会导致用户离开选择过程,填写其他字段、alt tab、选择要阅读的消息等,从而触发失焦事件

尽可能地,您也不希望有太多的往返服务器,因此最好不要在选择/取消选择时更新


要做到这一点而不产生不想要的结果,唯一可行的方法是添加一个触发ajax的按钮。

好的,谢谢你的建议。我更喜欢我描述的方式,因为我有3个不同的选择选项并排,我不想添加更多的按钮。我将focusout视为一种可能的解决方案。不确定这是否是最好的,但我仍在尝试。谢谢你@Nathan。[第1部分]jQuery中是否有.lostFocusEvent这样的东西我可以试试?我现在正在使用.on'change'实现,。。。但我宁愿不要每次鼠标点击都点击服务器。然而,如果我唯一的解决方案是添加另一个按钮,我会在每次鼠标点击时点击服务器。从可用性的角度来看,我的客户会因为必须点击提交按钮而感到不安,因为web表单已经非常复杂,并且包含几十个数据收集点。[第2部分]我需要实现3个单独的.focusout实例,用于将multiselect值发送回服务器,因此我不想将它们与3个额外的提交按钮结合起来。谢谢。@H.Ferrence是的,你可以使用.on'blur',functionevt,args{…}不管出于什么原因@Nathan,在你建议之前我昨天就试过了,但没有用。我今天又试了一次,仍然没有成功…$'selectmyId'。在'blur'上,函数{…};您是否尝试在选择器中使用id而不是继承选择器?根据我的理解$'select myId'只会在标记内搜索您的id,而不是标记本身