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



我想通过 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() );
});

从技术上讲,没有办法确定用户是否完成了多选,因为还有其他因素,用户将离开选择过程(填写其他字段,alt-tab,选择要阅读的消息等(触发丢失焦点事件。

尽可能,您不希望大量往返服务器,因此您最好不要在选择/取消选择时更新。

唯一可行的方法是添加一个触发 ajax 的按钮。

  • 然后让用户选择他想要的任何内容
  • 在 HTML 中添加按钮
  • 当按下按钮时
  • 在 jquery 中获取所有选定的值
  • 并进行 Ajax 调用并保存值

相关内容

  • 没有找到相关文章

最新更新