如何使用jQuery

时间:2017-08-24 19:09:02

标签: jquery ajax multi-select blur focusout

我想通过Ajax将所有多选选项写入服务器端数据库表。我不想调用该函数并在每个select / deselect操作上写入。我想让用户选择并取消选择所有需要的选项,然后我想进行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 个答案:

答案 0 :(得分:1)

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

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

只有在不产生不良结果的情况下才能采用合理的方法是添加一个触发ajax的按钮。

答案 1 :(得分:0)

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