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

183
Vistas
¿Por qué no puedo actualizar un elemento de entrada dentro del evento de clic?

¿Por qué el elemento de entrada no se actualiza?

 function route() { let textfield = { inputEl: document.querySelector('#textfield'), setValue: function(str) { this.inputEl.value = str; } }; textfield.inputEl.addEventListener('click', function(event) { document.body.innerHTML += '<button id="select">Select</button>'; owner(textfield); }); } function owner(controller) { document.querySelector('#select').addEventListener('click', function(event) { controller.setValue("Hello Universe!"); }); } route();

Sé cómo solucionar este problema, pero prefiero usar controller.setValue() para actualizar la entrada.

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

0

ACTUALIZADO

He actualizado el código a continuación; con suerte, esto se acerca más a lo que está tratando de lograr.

Necesitaba agregar un contenedor donde colocar el botón (en lugar de agregarlo al body ), así que agregué un contenedor como este:

 <div id="container"> <input type="text" id="textfield" /> </div>

Luego, podemos agregarle el botón como un niño, así:

 document.getElementById('container').appendChild(btn);

Ver código actualizado a continuación

 function route() { let textfield = { inputEl: document.querySelector('#textfield'), setValue: function(str) { this.inputEl.value = str; } }; textfield.inputEl.addEventListener('click', function(event) { // add the button if it's not already in there if(document.getElementById('select')){ return; } let btn = document.createElement('button'); btn.id = 'select'; btn.innerHTML = 'Select'; document.getElementById('container').appendChild(btn); owner(textfield); }); } function owner(controller) { document.getElementById('select').addEventListener('click', function(event) { controller.setValue("Hello Universe!"); }); } route();
 <div id="container"> <input type="text" id="textfield" /> </div>

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