您可以在不改变焦点的情况下在文本区域中按 Tab 键,同时仍在键入吗?

Can you press tab in a textarea without changing focus while still typing?

HTML:

<textarea id="text"></textarea>

JavaScript:

document.querySelector('#text').addEventListener('keydown', e => {
  if (e.keyCode == 9) e.preventDefault();
});

您是否仍然可以在不分散文本区域焦点的情况下编写制表符?

按下 Tab 键时在末尾添加空格:

document.querySelector('#text').addEventListener('keydown', e => {
    if (e.keyCode == 9) {
        e.preventDefault();
        document.querySelector('#text').value += "    ";
    }
});

编辑:致力于插入空格,我认为这可行:

<textarea id="text"></textarea>
document.querySelector('#text').addEventListener('keydown', e => {
    if (e.keyCode == 9) {
        e.preventDefault();

        var ele = document.querySelector('#text');
        var caretPos = ele.selectionStart;
        var textAreaTxt = ele.value;
        var txtToAdd = "    ";
        ele.value = textAreaTxt.substring(0, caretPos) 
                    + txtToAdd 
                    + textAreaTxt.substring(caretPos);
        ele.selectionStart = caretPos + 4;
        ele.selectionEnd = caretPos + 4;
    }
});

在 的帮助下以及对 js add spaces at cursor position 的一般搜索。