I have a basic form, and I am trying to make some event listeners come up if you click away without answering, but my webpage is not seeming to call the function and I do not know why. As of right now it will just submit even if nothing is actually typed in. I have also tried to put the call for the script at the top of the HTML page with a "defer" and at the bottom but it still wont load
function resetProfile(e) {
//document.forms[0].reset(); //no need to reset the form event by default clears input
fNameError.innerHTML = '';
lNameError.innerHTML = '';
addressError.innerHTML = '';
provinceError.innerHTML = '';
countryError.innerHTML = '';
emailError.innerHTML = '';
phoneError.innerHTML = '';
usernameError.innerHTML = '';
passwordError.innerHTML = '';
}
function validateProfile(e) {
var valid = true;
//display warning if firstName is not entered
if (profile.firstName.value === "") {
fNameError.innerHTML = 'Please enter a First Name';
valid = false;
}
//display warning if lastName is not entered
if (profile.lastName.value === "") {
lNameError.innerHTML = 'Please enter a Last Name';
valid = false;
}
//display warning if address1 is not entered
if (profile.address.value === "") {
address1Error.innerHTML = 'Please enter address ';
valid = false;
}
//display warning if city is not entered
if (profile.province.value === "") {
provinceError.innerHTML = 'Please enter a province';
valid = false;
}
//display warning if province is not selected
if (profile.country.value === "") {
countryError.innerHTML = 'Please enter a Country';
valid = false;
}
//display warning if country is not selected
if (profile.email.value === "") {
emailError.innerHTML = 'Please enter a valid email';
valid = false;
}
if (profile.phone.value === "") {
phoneError.innerHTML = 'Please enter a valid email';
valid = false;
}
if (profile.username.value === "") {
usernameError.innerHTML = 'Please enter a valid email';
valid = false;
}
if (profile.password.value === "") {
passwordError.innerHTML = 'Please enter a valid email';
valid = false;
}
if (!valid) {
// Then we prevent the form from being submitted/sent by canceling the event
event.preventDefault();
}
//else alert("Thank you");
return valid;
};
//form element events
//clear the warning message when the firstName is entered
document.querySelector('#fName').addEventListener("blur", function() {
if (this.value !== "") {
fNameError.innerHTML = "";
}
});
//clear the warning message when the lastName is entered
document.querySelector('#lName').addEventListener("blur", function() {
if (this.value !== "") {
lNameError.innerHTML = "";
}
});
//clear the warning message when the address1 is entered
document.querySelector('#address').addEventListener("blur", function() {
if (this.value !== "") {
addressError.innerHTML = "";
}
});
document.querySelector('#province').addEventListener("blur", function() {
if (this.value !== "") {
provinceError.innerHTML = "";
}
});
document.querySelector('#country').addEventListener("blur", function() {
if (this.value !== "") {
countryError.innerHTML = "";
}
});
document.querySelector('#email').addEventListener("blur", function() {
if (this.value !== "") {
emailError.innerHTML = "";
}
});
document.querySelector('#phone').addEventListener("blur", function() {
if (this.value !== "") {
phoneError.innerHTML = "";
}
});
document.querySelector('#username').addEventListener("blur", function() {
if (this.value !== "") {
usernameError.innerHTML = "";
}
});
document.querySelector('#password').addEventListener("blur", function() {
if (this.value !== "") {
passwordError.innerHTML = "";
}
});
//Add a submit event listener to the form to invoke the validateProfile() method when the form submi
document.profile.addEventListener("submit", validateProfile);
//Add a reser event listener to the form to invoke the resetProfile() method when the form is reset
document.profile.addEventListener("reset", resetProfile)
<form name="profile">
<input type="text" id="fname" name="firstName" value="FirstName"><br><br>
<span class="alert" id="fNameError"></span>
<input type="text" id="lname" name="lastName" value="Last Name"><br><br>
<span class="alert" id="lNameError"></span>
<input type="text" id="address" name="address" value="Address"><br><br>
<span class="alert" id="addressError"></span>
<input type="text" id="Province" name="province" value="Province"><br><br>
<span class="alert" id="provinceError"></span>
<input type="text" id="country" name="country" value="Country"><br><br>
<span class="alert" id="countryError"></span>
<input type="email" id="email" name="email" value="Email"><br><br>
<span class="alert" id="emailerror"></span>
<input type="tel" id="phone" name="phone" value="Phone Number"><br><br>
<span class="alert" id="phoneError"></span>
<input type="text" id="username" name="username" value="Username"><br><br>
<span class="alert" id="usernameError"></span>
<input type="password" id="pwd" name="password" value="Password"><br><br>
<span class="alert" id="passwordError"></span>
<input type="submit" value="Submit"><input type="reset" value="Reset">
</form>
requiredattribute if only checking for empty input?fNameErrordefined?