Here is my code
var form = document.querySelector('form');
var name = form.querySelector('div #name');
form.addEventListener('submit', function(e) {
e.preventDefault();
console.log(name.value); // undefined
})
<form>
<div>
<input id="name" />
</div>
<div>
<input type="submit" id="submit" />
</div>
</form>
console.log prints undefined
if I use var when declaring name
. But prints the actual value if I use const
instead of var
.
const name = form.querySelector('div #name');
I guess it's a hoisting problem, but can't understand why it's happening. Anyone please explain why it's not working while using var
.