Tengo una tarea como parte de un curso de ciberseguridad donde se supone que debo enviar un formulario con valores específicos para las entradas.
aquí está el fragmento relevante del código fuente con el que estoy trabajando: (código fuente para un sistema de mensajería)
<div class="form-group"> <label for="inputSubject">Subject:</label> <input name="subject" type="text" class="form-control" id="inputSubject" placeholder="Enter a subject" pattern=".{5,}" required> </div> <div class="form-group"> <textarea name="contents" class="form-control" rows="10" placeholder="Enter your message" pattern=".{5,}" required></textarea> </div>cada vez que trato de establecer el valor del área de texto usando getElementsbyName o getElemetnsbyTagName, aparece el error "Error de tipo no detectado: no se pueden establecer propiedades de nulo. ¿Alguna idea de cómo solucionar esto?
Dos cosas:
value o textContent . const textArea = document.querySelector('textarea[name="contents"]'); textArea.textContent = `whatever you want it to say`.Como getElementsByName devuelve una lista de nodos y solo tiene un elemento con ese nombre:
Esto debería funcionar para usted:
document.getElementsByName("contents")[0].value = "hello world"aquí cómo se podría implementar:
<head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div class="form-group"> <label for="inputSubject">Subject:</label> <input name="subject" type="text" class="form-control" id="inputSubject" placeholder="Enter a subject" pattern=".{5,}" required> </div> <div class="form-group"> <textarea name="contents" class="form-control" rows="10" placeholder="Enter your message" pattern=".{5,}" required></textarea> </div> <script> document.getElementsByName('contents')[0].value = 'hello world' </script> </body> </html>Importa un script en tu html de esta manera <script defer src="script.js"></script> para que se cree el árbol DOM. En su script importado, puede hacer esto: document.getElementsByTagName("textarea")[0].value = "Test Value";