幽游 发表于 2024-12-5 22:17:38

sjs焦点设置问题

附件中按ctrl+f能把焦点放置到搜索栏,但是触发EnterCell事件时,设置好焦点到搜索栏,没有成功,不知道为什么

Wilson.Zhang 发表于 2024-12-5 22:17:39

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


效果如下动图所示:

幽游 发表于 2024-12-6 09:52:56

删除这段代码后,光标过去了,但是焦点还在,按键盘录入的信息还是落到sjs单元格里了

幽游 发表于 2024-12-6 16:40:00

还有如何能在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

不太了解您的需求场景,SpreadJS也支持搜索功能,您可以使用内置支持的搜索功能。

幽游 发表于 2024-12-6 17:59:39

本帖最后由 幽游 于 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

幽游 发表于 2024-12-6 17:59
active_sheet = spread.getActiveSheet();
                active_sheet.bind(GC.Spread.Sheets.Events.EnterCell, fu ...

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


如果您必须按照您现在的设想实现,使用您的代码测试后发现如下使用方式可以奏效:光标显示在搜索框后,再一次按键ctrl+f进入您定义的按键逻辑,此时输入内容即可进入搜索框。
页: [1]
查看完整版本: sjs焦点设置问题