Actualmente tengo un formulario en el que un usuario puede poner su nombre, edad y el mensaje y luego tengo un botón para enviar el mensaje y se supone que debe mostrar una alerta con la información del formulario, pero cuando pongo la información y hago clic en el botón no pasa nada (la alerta no aparece). Aquí está el formulario html y el código de la función javascript:
<form action="#" method="get"> <fieldset> <legend>Informações do utilizador</legend> <label for="nome">Nome:</label> <input id="nome" name="nome" type="text" /> <br /> <label for="idade">Idade:</label> <select id="idade" name="idade"> <option value="menor"><18</option> <option value="jovem">18-21</option> <option value="jovemadulto">22-29</option> <option value="adulto">30-39</option> <option value="adultoavancado">40-49</option> <option value="idoso">>=50</option> </select> </fieldset> <fieldset> <legend>Ideias para tornar um campus mais sustentável</legend> <label for="mensagem">Mensagem:</label><br /> <textarea id="mensagem" name="mensagem" rows="10" cols="50" placeholder="Introduza a sua ideia"> </textarea> <br /> <input id="enviar" name="enviar" type="submit" onClick="submitForm()" value="Enviar"> <script> function submitForm() { var n = document.getElementById('nome').value; var i = document.getElementById('idade').value; var m = document.getElementById('mensagem').value; alert("Nome: "+s+"\n Idade: "+i+"\n Mensagem: "+m); } </script> <input id="limpar" name="limpar" type="reset" value="Limpar" /> </fieldset> </form>la forma correcta de hacerlo...
const myForm = document.querySelector('#my-form') // use the form parent // to refer each form elements // think about how to write your code: // easier to read again = less typing errors myForm.onsubmit = evt => { alert( 'Nome: ' + myForm.nome.value // access each element by his name + '\n Idade: ' + myForm.idade.value + '\n Mensagem: ' + myForm.mensagem.value ); evt.preventDefault(); // for testing without page relaod } <form action="#" method="get" id="my-form"> <!-- have an id (or a name) here --> <fieldset> <legend>Informações do utilizador</legend> <label for="nome">Nome:</label> <input id="nome" name="nome" type="text" /> <br /> <label for="idade">Idade:</label> <select id="idade" name="idade"> <option value="menor"><18</option> <option value="jovem">18-21</option> <option value="jovemadulto">22-29</option> <option value="adulto">30-39</option> <option value="adultoavancado">40-49</option> <option value="idoso">>=50</option> </select> </fieldset> <fieldset> <legend>Ideias para tornar um campus mais sustentável</legend> <label for="mensagem">Mensagem:</label><br /> <textarea id="mensagem" name="mensagem" rows="10" cols="50" placeholder="Introduza a sua ideia"></textarea> <br> <button type="submit"> Enviar </button> <button type="reset"> Limpar </button> </fieldset> </form>No hay var s en su función, debe haber n en su alert() :
<script> function submitForm() { var n = document.getElementById('nome').value; var i = document.getElementById('idade').value; var m = document.getElementById('mensagem').value; alert("Nome: "+n+"\n Idade: "+i+"\n Mensagem: "+m); } </script>