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

337
Vistas
¿Cómo puedo cambiar el color en javascript para cada letra que se ha escrito en una entrada si el atributo de datos (HTML) === texto de entrada en javascript?

¿Puede decirme cómo puedo cambiar el color (el verde es correcto, el rojo es incorrecto) para cada letra que se ha escrito (en el orden correcto) en una columna de entrada si el atributo de datos === texto de entrada en Javascript?

Me refiero a si datos = "palabra" valor de entrada = "palabra" ejemplo

Cuando escribo w, el color de la letra es verde, de lo contrario, el color de la letra es rojo.

 wo -stay green else red; wor - green else red; word -green else red;

Mi código está aquí:

 let all = document.querySelectorAll('#input_Text') all.forEach(element => element.addEventListener('input',(e)=>{ if(e.target.value === element.getAttribute('data-verb')){ element.style.border = "5px solid green" }else{element.style.border = "5px solid red"}; }));

Muchas gracias

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

0

Puede usar Document.querySelectorAll() para obtener todos los elementos 'input[data-verb]' y adjuntar un evento de input para establecer el borde de estilo si el valor del elemento String.prototype.startsWith() es el texto ingresado:

 document .querySelectorAll('input[data-verb]') .forEach(el => el.addEventListener('input', ({ target: { value }}) => { const color = el.getAttribute('data-verb').startsWith(value) ? 'green' : 'red' el.style.border = `5px solid ${color}` }))
 <input type="text" data-verb="word">

about 4 years ago · Juan Pablo Isaza Denunciar

0

  1. Cambié su id a class asumiendo que habrá múltiples entradas.
  2. Además, use String.prototype.startsWith para verificar si data-verb comienza con el valor de entrada actual.
  3. Use element.style.border para establecer el borde del elemento.

 let all = document.querySelectorAll('.input_Text') all.forEach(element => element.addEventListener('input',(e)=>{ var data = element.getAttribute('data-verb').toString(); var value = e.target.value; if (e.target.value == ""){ element.style.border = "none"; } else if (data.startsWith(value)){ element.style.border = "5px solid green"; } else{ element.style.border = "5px solid red"; } }));
 <input type='text' class='input_Text' data-verb="word">

about 4 years ago · Juan Pablo Isaza Denunciar

0

Asigne la misma clase a cada entrada para la que desea verificar una palabra, luego recorra los contenidos de querySelectorAll , agregando un detector de eventos a cada uno de ellos.

Luego puede usar includes para ver si el contenido de lo que se escribe coincide con el atributo de datos del formulario:

 let words = document.querySelectorAll('.word'); words.forEach((word) => { word.addEventListener('input', () => { if (word.dataset.verb.includes(word.value)) { word.style.border = '5px solid green'; } else { word.style.border = '5px solid red'; } }); });
 <input type="text" data-verb="apple" class="word"><br /> <input type="text" data-verb="banana" class="word">

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