Reputation: 13
my problem is that I have empty input value after submitting a form. I have no errors and I have no idea what is wrong.
Thanks!
const myForm = document.getElementById("myForm");
const myName = document.getElementById("myName").value;
const myEmail = document.getElementById("email").value;
const myMessage = document.getElementById("message").value;
myForm.addEventListener( "submit", async (e) => {
e.preventDefault();
console.log( myName );
console.log( myEmail );
console.log( myMessage );
})
<form id="myForm" name="myForm">
<label for="myName">Name:</label>
<input id="myName" name="myName" type="text" >
<label>E-mail:</label>
<input id="email" name="email" type="email" >
<label>Message:</label>
<textarea id="message" name="message" type="text" ></textarea>
<button id="form-button" type="submit">Send</button>
</form>
<script src="./mail-post.js"></script>
Upvotes: 1
Views: 440
Reputation: 106
The values are out of scope, try putting then inside the submit event, like this
const myForm = document.getElementById("myForm");
myForm.addEventListener( "submit", async (e) => {
e.preventDefault();
const myName = document.getElementById("myName").value;
const myEmail = document.getElementById("email").value;
const myMessage = document.getElementById("message").value;
console.log( myName );
console.log( myEmail );
console.log( myMessage );
})
Upvotes: 3