Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

323
Vistas
Agregue un prefijo/sufijo escribiendo

Tengo un campo de entrada (texto) inicialmente vacío. Me gustaría que tan pronto como alguien comience a escribir (¿presionar una tecla?), un prefijo/sufijo será autom. añadido a la cadena escrita. No debería ser posible eliminar el prefijo/sufijo de la cadena final y no debería ser posible que la cadena final sea solo el prefijo/sufijo (en este caso, el campo de texto debe estar vacío).

¿Puede alguien ayudarme con un javascript (simple), por favor?

EDITAR:

Mi caso de uso es muy simple: el campo de texto se usa para definir un nombre de usuario. El usuario puede elegir el nombre de usuario que quiera, pero la regla dice que el nombre de usuario debe tener un prefijo/sufijo definido. En este momento coloco una etiqueta fija al inicio/final del campo de entrada y luego concateno las cadenas. Funciona bien pero encuentro que visualmente no es óptimo. Solo pensé que la otra solución sería mucho más genial... Hacer esto con un mensaje emergente y de validación no es una opción.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

¡Definitivamente es un anti-patrón para modificar la entrada del usuario al presionar una tecla! Hay muchos casos de esquina que hacen que esto sea molesto de usar y difícil de probar... Si el usuario escribe muy rápido, si el contenido en realidad se copia y pega, el evento se activa al presionar una tecla sin escribir...

En IMHO , la solución "aceptable", si realmente desea esto, es correlacionar la entrada del usuario con una entrada modificada de solo lectura (o cualquier otro elemento en la interfaz de usuario).

 <input id="uazz" type="text">single<br/><br/> <input id="in" type="text">in<br/><br/> <input id="out" type="text" readonly>out<br/><br/>
 let userInput = document.getElementById('uazz') let prefix='@' let suffix='%' function transformInput(el){ let originalInput = el.target.value; if(originalInput!==''){ let transformedInput = originalInput if(!transformedInput.match(new RegExp('^' + prefix))){ transformedInput = prefix + transformedInput } if(!transformedInput.match(new RegExp(suffix + '$'))){ transformedInput = transformedInput + suffix } if(transformedInput!==originalInput){ el.target.value = transformedInput } } } userInput.onkeyup = transformInput /* :] */ function transformInputOUT(el){ let userInputOUT = document.getElementById('out') let originalInput = el.target.value; let transformedInput = originalInput if(transformedInput !== ''){ transformedInput = prefix + transformedInput + suffix } userInputOUT.value = transformedInput } let userInputIN = document.getElementById('in') userInputIN.onkeyup = transformInputOUT

Compruébelo usted mismo en esta horrible implementación.
https://jsfiddle.net/6f5zgtqo/5/

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda