找回密码
 立即注册

QQ登录

只需一步,快速开始

幽游

注册会员

10

主题

23

帖子

91

积分

注册会员

积分
91

[已处理] sjs焦点设置问题

幽游
注册会员   /  发表于:2024-12-5 22:17  /   查看:120  /  回复:6
10金币
附件中按ctrl+f能把焦点放置到搜索栏,但是触发EnterCell事件时,设置好焦点到搜索栏,没有成功,不知道为什么

try_search.rar

882 Bytes, 下载次数: 4

最佳答案

查看完整内容

您好!删除EnterCell事件中令workbook失焦的代码即可,如下图所示: 效果如下动图所示:

6 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2024-12-5 22:17:39
来自 2#
您好!删除EnterCell事件中令workbook失焦的代码即可,如下图所示:
1733447649552.png475663756.png

效果如下动图所示:
EnterCell事件被触发.gif
回复 使用道具 举报
幽游
注册会员   /  发表于:2024-12-6 09:52:56
3#
删除这段代码后,光标过去了,但是焦点还在,按键盘录入的信息还是落到sjs单元格里了
回复 使用道具 举报
幽游
注册会员   /  发表于:2024-12-6 16:40:00
4#
还有如何能在input框回车后,焦点再回到sjs中
function handleKeyDown(event) {  
                if (event.key === 'Enter') {  
                        event.preventDefault(); // 防止表单提交  
                        document.getElementById('ss').focus();
                        spread.focus(true);
                }  
        }  
我写了一个方法,没效果
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-6 17:27:09
5#
不太了解您的需求场景,SpreadJS也支持搜索功能,您可以使用内置支持的搜索功能。
回复 使用道具 举报
幽游
注册会员   /  发表于:2024-12-6 17:59:39
6#
本帖最后由 幽游 于 2024-12-8 10:25 编辑


active_sheet = spread.getActiveSheet();
                active_sheet.bind(GC.Spread.Sheets.Events.EnterCell, function () {
         //spread.focus(false);
                        document.getElementById('focus-input').focus();
                       
                });
删除掉spread.focus(false);,但是是通过鼠标点击单元格,触发的EnterCell处理,虽然光标落到input框里了,
但是在键盘录入时,数据还是落到了sjs的单元格里,没有落到input框里。

现在是希望鼠标点选单元格时,焦点落到input框里,并且输入数据也到input框里
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2024-12-9 09:45:48
7#
幽游 发表于 2024-12-6 17:59
active_sheet = spread.getActiveSheet();
                active_sheet.bind(GC.Spread.Sheets.Events.EnterCell, fu ...

根据您现在提供的信息,我理解在搜索框中输入数据后应该希望在当前sheet中搜索包含或者等于搜索框内容的数据吧?如果是这样,SpreadJS本就支持搜索功能,如下动图所示:
查找功能.gif

如果您必须按照您现在的设想实现,使用您的代码测试后发现如下使用方式可以奏效:光标显示在搜索框后,再一次按键ctrl+f进入您定义的按键逻辑,此时输入内容即可进入搜索框。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部