Digamos que estoy visitando un formulario en línea que usa Material UI, como este https://codesandbox.io/s/material-demo-forked-kigre?file=/index.js
Quiero llenar el campo de entrada con algún valor usando la consola javascript, por ejemplo
for (input of document.getElementsByTagName('input')) { input.value = "new value"; console.log(input.value); }Esto primero parece funcionar ya que el valor del campo de entrada cambia y la consola puede registrar el valor actualizado. Sin embargo, como puede ver, la visualización del valor real "Su valor de entrada es: prueba" no cambia, y una vez que hace clic en el campo de entrada, vuelve a su valor original.
¿Puede escribir un javascript externo que realmente pueda cambiar el valor del campo de entrada? Creo que no es tan simple, ¿puede ser algo así como el envío de eventos?
Esto es lo que puede hacer:
__reactPropsxxxxx (los últimos bits son diferentes cada vez)onChangeEste es un código de ejemplo:
for (input of document.getElementsByClassName("MuiInput-input")) { for (key in input) { if (key.startsWith("__reactProps")) { input[key].onChange({target: {value: "changed!"}}); break; } } }