es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Javascript: document.getElementById(“id”).value = ‘test’ no funciona.

Soy un traductor técnico y estoy tratando de crear un script en JavaScript que complete automáticamente un formulario con algunos datos para automatizar este proceso.

El código es muy simple:

document.getElementById(“id1”).value = ‘test’;
document.getElementById(“id2”).value = ‘test’;

Pero en este formulario hay algo de código Angular que establece algunos campos como obligatorios y, por lo que veo, utiliza la clase “form-control ng-untouched ng-pristine ng-invalid”.

El problema es que después de ejecutar mi código JavaScript en la consola, establece el valor pero cuando hago clic en el botón de envío (que activa algo que escribirá los datos en la base de datos), me dice que esos campos son obligatorios como si no hubiera completado los campos y si por ejemplo agrego manualmente una letra en uno de los campos, toma ese campo específico como “completo” y funciona.

Por alguna razón, document.getElementById(“id1”).value = ‘test’ no establece realmente el valor en el campo.

Espero que quede claro, no soy un experto, pero estoy tratando de aprender y automatizar mis pruebas.

¿Hay algo que pueda hacer usando JavaScript porque no tengo contacto con el desarrollador de Angular?

Por ahora, lo que he intentado es editar la clase “form-control ng-untouched ng-pristine ng-invalid” a “form-control ng-untouched ng-pristine ng-valid”. Elimina la cláusula obligatoria, pero es solo una visualización porque el problema sigue existiendo.

Gracias de antemano.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que está intentando usar Javascript para completar un formulario con código Angular. Desafortunadamente, parece que el código Javascript que está usando no está estableciendo el valor en el campo esperado.

    Podría intentar usar el método document.querySelector() para seleccionar el elemento y establecer el valor. Este método le permite seleccionar un elemento usando un selector CSS, que puede ser más confiable que usar el método document.getElementById().

    También podría intentar usar el método element.setAttribute() para establecer el atributo value del elemento. Esto puede ser más confiable que establecer la propiedad value del elemento.

    Finalmente, podría intentar usar el método element.dispatchEvent() para enviar un evento change en el elemento. Esto puede ser necesario para activar cualquier código Angular que esté escuchando los cambios en el formulario.

    También puede ser necesario editar la clase del elemento para que parezca que ha sido completado. Podría intentar usar el método element.classList.add() para agregar la clase ng-valid al elemento.

    ¡Espero que esto ayude!

Comments are closed.