我想知道是否有办法设置" tabindex"以编程方式或其他方式在编辑器上。在我的应用程序中,monaco编辑器是一个相当复杂的形式(位于常规HTML表单字段元素之间)的一部分,我需要在表单字段元素上定义tabindex属性。我相信编辑器上的tabindex设置为" 0"。它创建的问题是,一旦我退出编辑器,它就会跳转到订单中的HTML元素。
例如,请查看下面的图片。
理想情况下,当我在编辑器中按Tab键时,焦点应该放在" LOCKED UNTIL"的文本框中。 (1)当我在编辑器中按shift + tab键时,焦点应该放在" MESSAGE ID"的文本框中。 (2)。但是,按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();
}
}
});
我想知道是否有更好的方法来解决这个问题?