vale, entonces no puedo hacerlo ?
otra pregunta, sabes como funcionan los navegadores para llenar el campo user/password guardados en el navegador? , osea google chrome me auto completa el user en netflix perfectamente, pero no se como trabaja....
de todos modos, gracias.
Pues, en teoría debes poder simular un evento que provoque el cambio. Sin embargo, estuve probando bastante formas de enviar esos eventos y simplemente no pude reproducir el evento.
Del auto fill de google chrome no se como trabaja tampoco.
Edit: Vaya pues, es algo de React... Se está ahorrando eventos de una manera que todavía no comprendo muy bien. Aquí una función correcta (
sacada de SO).
const triggerInputChange = (node, inputValue) => {
const descriptor = Object.getOwnPropertyDescriptor(node, 'value');
node.value = `${inputValue}#`;
if (descriptor && descriptor.configurable) {
delete node.value;
}
node.value = inputValue;
const e = document.createEvent('HTMLEvents');
e.initEvent('change', true, false);
node.dispatchEvent(e);
if (descriptor) {
Object.defineProperty(node, 'value', descriptor);
}
}
Los inputs que crea react tienen setters y getters en
value especiales para evitar que se creen varios eventos cuando el input no ha cambiado. Por eso agrega el nuevo texto con un
# primero para simular que haya un cambio de texto.