So I am having trouble with input validation, or I would say having trouble with displaying certain text below the input when input is empty.
As you can see in the code I tried checking if the value of an input is '' but it dint now work I tried other things as well but. I would be very grateful if someone shows me my beginner mistakes.
$("#newPasswordTextBox").on("keyup", function() {
let pass = $("#newPasswordTextBox").val();
if (pass.length == '') {
$("#newPasswordTextBox").html("Please enter your password");
}
if ((pass.length >= 10) && (pass.length < 15)) {
var regex = /^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[ `!#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?~])/;
if (!pass.match(regex)) {
$("#newPasswordTextBox").css({
"border-color": "red"
})
} else {
$("#newPasswordTextBox").css({
"border-color": "green"
})
$("#passwordCheck").html("Looks good");
$("#passwordCheck").css({
"color": "green"
})
}
} else if (pass.length >= 15) {
$("#newPasswordTextBox").css({
"border-color": "green"
})
} else {
$("#newPasswordTextBox").css({
"border-color": "red"
})
}
if (!this.pass) {
$("#newPasswordTextBox").html("Please enter your password");
}
}
);
$("#confirmNewPasswordTextBox").on("keyup", function() {
let pass = $("#confirmNewPasswordTextBox").val();
let confpass = $("#newPasswordTextBox").val();
if (pass === confpass) {
$("#confirmNewPasswordTextBox").css({
"border-color": "green"
})
$("#confirmPasswordCheck").html("Passwords are matching");
$("#confirmPasswordCheck").css({
"color": "green"
})
} else {
$("#confirmNewPasswordTextBox").css({
"border-color": "red"
})
}
if (confpass.length == 0) {
$("#confirmPasswordCheck").html("Please confirm your password");
$("#confirmPasswordCheck").css({
"color": "red"
})
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
<label for="newPasswordTextBox">New Password</label>
<input type="password" id="newPasswordTextBox" class="form-control" name="password" placeholder="New Password" autocomplete="off">
<span id="passwordCheck"></span>
</div>
<div class="form-group">
<label for="confirmNewPasswordTextBox">Confirm Password</label>
<input type="password" id="confirmNewPasswordTextBox" class="form-control" name="confirmNewPassword" placeholder="Confirm New Password" autocomplete="off">
<span id="confirmPasswordCheck"></span>
</div>