easyui datagrid cell edit 焦点离开保存问题

存在666 2016-09-06 11:32:06
版本:1.4.5
插件:datagrid-cellediting.js 官网

我增加了个焦点离开事件
input.bind('focusout', function (e) {
dg.datagrid('endEdit', index);
});

出现问题:
1.直接单击cell A,进入编辑,继续单击同一行的,cell B,则无反应,需要在点击一次才能进入编辑
2.如果单击不同行的cell,则完全运行正常


调试怀疑:有可以是因为focusout导到当前行的cell click没有触发
...全文
1737 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
存在666 2016-09-12
  • 打赏
  • 举报
回复
引用 10 楼 showbo 的回复:
[quote=引用 9 楼 ZFF623 的回复:] [quote=引用 8 楼 showbo 的回复:] 你怎么改人家的示例的,下载的压缩包里面不是有单元格编辑示例了
我就是OnCellEdit 里面加了上面的事件,其他都没动,去年这个,编辑正常,但不能离开焦点就保存,所有才做的这个 [/quote] 因为你点击同行单元格后会先触发编辑行事件(同时调用了endEdit方法),然后再到你的focusout事件结束编辑,导致生成的编辑器被还原为未编辑状态了,用计时器延时来做 参考:easyui cell Editing blur自动保存[/quote] 差不多是这样解决,但是最后我发现我根本就不需要离开焦点事件,思路上有偏差
  • 打赏
  • 举报
回复
引用 4 楼 ZFF623 的回复:

input.bind('focusout', function (e) {
   dg.datagrid('endEdit', index);
  input.blur();
//或者试试dg.datagrid('refreshRow', index);
});
存在666 2016-09-06
  • 打赏
  • 举报
回复
引用 3 楼 u011376884 的回复:
[quote=引用 2 楼 ZFF623 的回复:] [quote=引用 1 楼 u011376884 的回复:] 官网 endEdit 的解释 End editing a row. 你点击同一行的endEdit方法不起作用,当然没反应了
我试过用datagrid-cellediting.js里面的endCellEdit 方法,一样的问题,只要不加focusout方法,就完全正常![/quote] 你试试在你的方法里加上input失去焦点[/quote] 不太明白,我不是已经加上了失去焦点事件吗 input.bind('focusout', function (e) { dg.datagrid('endEdit', index); }); 还要在哪加?
  • 打赏
  • 举报
回复
引用 2 楼 ZFF623 的回复:
[quote=引用 1 楼 u011376884 的回复:] 官网 endEdit 的解释 End editing a row. 你点击同一行的endEdit方法不起作用,当然没反应了
我试过用datagrid-cellediting.js里面的endCellEdit 方法,一样的问题,只要不加focusout方法,就完全正常![/quote] 你试试在你的方法里加上input失去焦点
存在666 2016-09-06
  • 打赏
  • 举报
回复
引用 1 楼 u011376884 的回复:
官网 endEdit 的解释 End editing a row. 你点击同一行的endEdit方法不起作用,当然没反应了
我试过用datagrid-cellediting.js里面的endCellEdit 方法,一样的问题,只要不加focusout方法,就完全正常!
  • 打赏
  • 举报
回复
官网 endEdit 的解释 End editing a row. 你点击同一行的endEdit方法不起作用,当然没反应了
Go 旅城通票 2016-09-06
  • 打赏
  • 举报
回复
引用 9 楼 ZFF623 的回复:
[quote=引用 8 楼 showbo 的回复:] 你怎么改人家的示例的,下载的压缩包里面不是有单元格编辑示例了
我就是OnCellEdit 里面加了上面的事件,其他都没动,去年这个,编辑正常,但不能离开焦点就保存,所有才做的这个 [/quote] 因为你点击同行单元格后会先触发编辑行事件(同时调用了endEdit方法),然后再到你的focusout事件结束编辑,导致生成的编辑器被还原为未编辑状态了,用计时器延时来做 参考:easyui cell Editing blur自动保存
存在666 2016-09-06
  • 打赏
  • 举报
回复
引用 8 楼 showbo 的回复:
你怎么改人家的示例的,下载的压缩包里面不是有单元格编辑示例了
我就是OnCellEdit 里面加了上面的事件,其他都没动,去年这个,编辑正常,但不能离开焦点就保存,所有才做的这个
Go 旅城通票 2016-09-06
  • 打赏
  • 举报
回复
你怎么改人家的示例的,下载的压缩包里面不是有单元格编辑示例了
  • 打赏
  • 举报
回复
引用 6 楼 ZFF623 的回复:
还是不行。。。。好奇怪,为什么我把 dg.datagrid('endEdit', index); 去掉,就正常了,难道endEdit有什么东西吗
那个只能看源码了……
存在666 2016-09-06
  • 打赏
  • 举报
回复
引用 5 楼 u011376884 的回复:
[quote=引用 4 楼 ZFF623 的回复:]

input.bind('focusout', function (e) {
   dg.datagrid('endEdit', index);
  input.blur();
//或者试试dg.datagrid('refreshRow', index);
});
[/quote] 还是不行。。。。好奇怪,为什么我把 dg.datagrid('endEdit', index); 去掉,就正常了,难道endEdit有什么东西吗

87,916

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧