Estoy tratando de hacer un autocompletado para un formulario con la extensión de Google. Mi código solo funciona para el segundo elemento, el primero se completa, pero cuando paso a continuación y luego vuelvo, el valor desaparece (si elimino el segundo elemento y sus funciones, el primero funciona bien, tal vez es algo con el focus() pero no estoy seguro)
let input1 = document.querySelectorAll('.vlocity-input')[0]; input1.focus(); document.execCommand('insertText', false, 'OS Autofill'); input1.dispatchEvent(new Event('change', {bubbles: true})); let input2 = document.querySelectorAll('.vlocity-input')[1]; input2.focus(); document.execCommand('insertText', false, 'OS Autofill'); input2.dispatchEvent(new Event('change', {bubbles: true})); Y el segundo problema es que el método execCommand está en desuso. Probé con eventos de teclado y con element.value() pero no funciona. ¿Alguien sabe lo que está pasando aquí? Gracias
Obtengo este código de aquí:ingrese datos en un campo de entrada personalizado
PD: Sí, el problema aquí es el focus() . Probé con el mismo código pero con un setTimeout (después de que se ejecuta el segundo elemento) que establece el foco en el primer elemento, y el resultado es que solo mantiene el valor del primer elemento, y el segundo se pierde.
let input1 = document.querySelectorAll('.vlocity-input')[0]; input1.focus(); document.execCommand('insertText', false, 'OS Autofill'); input1.dispatchEvent(new Event('change', {bubbles: true})); let input2 = document.querySelectorAll('.vlocity-input')[1]; input2.focus(); document.execCommand('insertText', false, 'OS Autofill'); input2.dispatchEvent(new Event('change', {bubbles: true})); setTimeout(()=>{ input1.focus() console.log('focus set') }, 2000)