我想知道是否有办法以编程方式或其他方式在编辑器上设置“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();
}
}
});
我想知道是否有更好的方法来处理这个问题?