Добавить пробелы в конец при нажатии на вкладку:
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;
}
});
С помощью https://stackoverflow.com/a/15977052/1171702 и общим поиском js add spaces at cursor position
.