Necesito permitir que el usuario ingrese pestañas en un cuadro de entrada de texto sin que se centre en otros elementos y también permitirles ingresar cadenas de varias líneas (caracteres LF).
¿Algunas ideas? Estoy tratando de crear un IDE de espacio en blanco (lang) y, por lo tanto, solo poder ingresar uno de los tres caracteres necesarios lo hace un poco difícil:
<input type="text" id="main_input">¿Necesita un elemento <input> ? Está diseñado para mostrar una sola línea de texto. Para texto de varias líneas, puede utilizar el elemento <textarea> .
Por ejemplo:
document.getElementById('mytext').addEventListener('keydown', function(e) { if (e.key == 'Tab') { e.preventDefault(); var start = this.selectionStart; var end = this.selectionEnd; // set textarea value to: text before caret + tab + text after caret this.value = this.value.substring(0, start) + "\t" + this.value.substring(end); // put caret at right position again this.selectionStart = start + 1; this.selectionEnd = start + 1; } }); <textarea id="mytext"></textarea>