2

我想知道是否有办法以编程方式或其他方式在编辑器上设置“tabindex”。在我的应用程序中,monaco 编辑器是一个相当复杂的表单的一部分(位于常规 HTML 表单字段元素之间),我需要在表单字段元素上定义 tabindex 属性。我相信编辑器上的 tabindex 设置为“0”。它产生的问题是,一旦我跳出编辑器,它就会乱序跳转到 HTML 元素。

例如,请看下面的图片。

在此处输入图像描述

理想情况下,当我在编辑器中按 tab 键时,焦点应该放在“LOCKED UNTIL”(1)的文本框上,当我在编辑器中按 shift+tab 键时,焦点应该放在“MESSAGE ID”的文本框上”(二)。但是,按 tab 键会将焦点放在拆分器 (3) 上,因为拆分器和编辑器的 tabindex 均为“0”。

目前为了解决这个问题,我正在keyDown编辑器上捕获事件并手动设置焦点。

  editor.onKeyDown((evt) => {
    if (evt.keyCode === monaco.KeyCode.Tab) {
      if (evt.shiftKey) {
        $('#MessageId').select();
        evt.preventDefault();
        evt.stopPropagation();
      } else {
        $('#MessageLockedUntil').select();
        evt.preventDefault();
        evt.stopPropagation();
      }
    }
  });

我想知道是否有更好的方法来处理这个问题?

4

0 回答 0