I was trying to print form values on submit to console.log to test. But getting a undefined message. Can't figure out where I am going wrong exactly. I have gone through various answers on StackOverflow but still no luck. Here is the code -
HTML
<form class="form-inline">
<label class="required">* required </label>
<div class="form-group">
<input type="text" class="form-control inputArea" id="fullname" placeholder="Full Name *">
</div>
<div class="form-group">
<input type="email" class="form-control inputArea" id="email" placeholder="Email *">
</div>
<div class="form-group">
<input type="tel" class="form-control inputArea" id="phn" placeholder="Phone Number *">
</div>
<button type="submit" class="btn btn-default submit">Submit</button>
</form>
JavaScript
<script>
var formInput = document.querySelectorAll('#fullname, #email, #phn');
document.querySelector('form.form-inline').addEventListener('submit', function (e) {
e.preventDefault();
console.log(formInput.value);
});
</script>
You are getting undefined because forminput
is not a single object it has multiple objects
which doesn't have property value
.
You can get value by index like below
console.log(formInput[0].value);
You are querying the form before the values are inputted. The first line of your script should be inside the event listener:
<script>
document.querySelector('form.form-inline').addEventListener('submit', function (e) {
e.preventDefault();
var formInput = document.querySelectorAll('#fullname, #email, #phn');
console.log(formInput.value);
});
</script>
The values are being query-ed on page-load. You need to wait until the user submits before you check the values.
You can try this. Hope it helps!
function myFunction(){ var a = document.getElementById("fullname").value; var b = document.getElementById("email").value; var c = document.getElementById("phn").value; console.log(a); console.log(b); console.log(c); return false; }
<form class="form-inline" onsubmit = " return myFunction()"> <label class="required">* required </label> <div class="form-group"> <input type="text" class="form-control inputArea" id="fullname" placeholder="Full Name *"> </div> <div class="form-group"> <input type="email" class="form-control inputArea" id="email" placeholder="Email *"> </div> <div class="form-group"> <input type="tel" class="form-control inputArea" id="phn" placeholder="Phone Number *"> </div> <button type="submit" class="btn btn-default submit">Submit</button> </form>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.