我想通过 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 调用并保存值