0

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

2 回答 2

1

从技术上讲,无法确定用户是否完成了多选,因为还有其他因素会导致用户退出选择过程(填写其他字段、alt-tab、选择要阅读的消息等)触发失去焦点事件。

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

唯一可行的方法是添加一个触发 ajax 的按钮而不会产生不需要的结果。

于 2017-08-24T19:28:13.797 回答
0
  • 然后让用户选择他想要的任何东西
  • 在 Html 中添加一个按钮
  • 当按下按钮时
  • 获取jquery中所有选中的值
  • 并进行 Ajax 调用并保存值
于 2017-08-24T19:16:15.233 回答