JS básica: Adición de caracteres en la posición del cursor, mientras se mantiene la posición del cursor

Rojo :

Digamos que yo estoy haciendo una calculadora básica que permite expresiones enteras a tecleado por el usuario. Voy a usar un simple <input>etiqueta.

El usuario puede escribir lo que quieran, pero quiero que sea aún más fácil para el cliente, quiero añadir un paréntesis de cierre inmediatamente después de que tipo (, así que creé mi javascript para detectar cuando (se introduce por en el campo de entrada, a continuación, +=una )para el campo de entrada.

El problema con mi código es que agrega el paréntesis al final de la entrada, independientemente de dónde se escriben entre paréntesis, incluso al principio.

¿Cómo puedo añadir un personaje que cada vez el cursor se encuentra?

Mi código es el siguiente:

input = document.querySelector("input[type=text]");

input.addEventListener(`keyup`, (event)=>
{
  if(event.key === `(`)
  {
    input.value+=`)`;
  }
});
<input type="text" placeholder="Put mathematical expression"></input>

I. Pereira:

Creo que debería resolver su problema.

let input = document.querySelector("input[type=text]");

input.addEventListener(`keyup`, (event) => {
    if(event.key === '(') {
        let cursorPos = input.selectionStart;
        input.value = input.value.substr(0, cursorPos) + ')' + 
                      input.value.substr(cursorPos);
    }   
});

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=281476&siteId=1
Recomendado
Clasificación