Я пытаюсь определить, когда пользователь нажимает клавишу табуляции, поэтому я могу вставить пробелы вместо смещения фокуса элемента.
Обработчик события вызывается правильно, но значение свойств .selectionStart и .selectionEnd либо не определено, либо равно NaN. Что-то не так с моим кодом?
<b-form-textarea
id="pythonCodeInput"
placeholder="Write Python code here..."
v-model="newQuestion.objects.code"
ref="codeInput"
@keydown.native.tab="keyDownInTextarea">
</b-form-textarea>
Соответствующий код из keyDownInTextarea
let codeInput = this.$refs.codeInput;
// Add 4 spaces
let tabSize = 4;
let tabPosition = codeInput.selectionStart;
let textWithSpaces = codeInput.value.substring(0, tabPosition);
for (let i = 0; i < tabSize; i++) textWithSpaces += " ";
textWithSpaces += codeInput.value.substring(tabPosition);
Я ожидаю, что tabPosition будет иметь значение, показывающее, где находится курсор, но фактический результат равен NaN или не определен.