Estoy tratando de obtener el valor del elemento textarea en mi formulario usando eventos simples de JavaScript. Estoy usando Vue.js (no estoy usando v-model ya que el formulario se generará dinámicamente, por lo que podría haber más de 1, por ejemplo). He intentado algunos enfoques diferentes. Parece que puedo agarrar todo lo que no sea el elemento textarea
console.log(event.target.closest("textarea")); console.log(event.target.parentNode.closest("textarea")); console.log(event.target.parentNode.closest("form textarea")); console.log(event.target.parentNode.closest("form > textarea")); console.log(event.target.parentNode.closest("textarea > form"));.closest() busca el elemento principal más cercano, no un elemento secundario. Úsalo para encontrar el formulario adjunto.
Luego use .querySelector() para buscar un elemento descendiente a partir de ahí.
console.log(event.target.closest("form").querySelector("textarea").value);Si está utilizando un formulario para enviar los valores, puede utilizar el objeto FormData para analizar todas las entradas:
const formElement = document.getElementById('form'); formElement.addEventListener('submit', (event) => { event.preventDefault(); const formData = new FormData(event.target); console.log(formData.get('textValue')); }); <form id="form"> <textarea name="textValue">Lorem ipsum dolor</textarea> <br /> <input type="submit" value="Submit" /> </form>