I'm playing about with JavaScript and wanted to create a simple validation script.
It works ok but is a bit clunky. How could I improve it?
var el = document.getElementById("username");
var el_pwd = document.getElementById("password");
var el2 = document.getElementById("feedback");
var el3 = document.getElementById("ok");
var el4 = document.getElementById("ok2");
function checkUsername() {
var username = el.value;
var password = el_pwd.value;
if((username.length < 5) & (password.length <= 0)) {
el2.className = 'warning';
el2.textContent = "Username Not long enough yet..";
el2.style.color = "red";
} else {
el2.textContent = " ";
}
}
function checkPassword() {
var username = el.value;
var password = el_pwd.value;
if((username.length >= 5) & (password < 7) ) {
el2.textContent = "Password MUST be 7 or more characters";
el2.style.color = "red";
} else if ((username.length <= 4) & (password.length <= 0)) {
el2.className = 'warning';
el2.textContent = "Username Not long enough yet..";
el2.style.color = "red";
} else {
el2.textContent = " ";
}
}
function usernameOK() {
var username = el.value;
if(username.length >= 5) {
el3.style.display="block";
} else {
el3.style.display = "none";
}
}
function passwordOK() {
var password = el_pwd.value;
if(password.length >= 7) {
el4.style.display="block";
} else {
el4.style.display = "none";
}
}
function feedBack() {
el2.className = 'tip';
el2.textContent = "The username MUST be at least 5 characters";
el2.style.color = "blue";
}
el.addEventListener("focus", feedBack, false);
el.addEventListener("blur", checkUsername, false);
el.addEventListener("blur", usernameOK, false);
el_pwd.addEventListener("focus", checkPassword, false);
el_pwd.addEventListener("blur", passwordOK, false);
var el = document.getElementById("username");
var el_pwd = document.getElementById("password");
var el2 = document.getElementById("feedback");
var el3 = document.getElementById("ok");
var el4 = document.getElementById("ok2");
function checkUsername() {
var username = el.value;
var password = el_pwd.value;
if ((username.length < 5) & (password.length <= 0)) {
el2.className = 'warning';
el2.textContent = "Not long enough yet..";
el2.style.color = "red";
} else {
el2.textContent = " ";
}
}
function checkPassword() {
var username = el.value;
var password = el_pwd.value;
if ((username.length >= 5) & (password < 7)) {
el2.textContent = "Password MUST be 7 or more characters";
el2.style.color = "red";
} else if ((username.length <= 4) & (password.length <= 0)) {
el2.className = 'warning';
el2.textContent = "Not long enough yet..";
el2.style.color = "red";
} else {
el2.textContent = " ";
}
}
function usernameOK() {
var username = el.value;
if (username.length >= 5) {
el3.style.display = "block";
} else {
el3.style.display = "none";
}
}
function passwordOK() {
var password = el_pwd.value;
if (password.length >= 7) {
el4.style.display = "block";
} else {
el4.style.display = "none";
}
}
function feedBack() {
el2.className = 'tip';
el2.textContent = "The username MUST be at least 5 characters";
el2.style.color = "blue";
}
el.addEventListener("focus", feedBack, false);
el.addEventListener("blur", checkUsername, false);
el.addEventListener("blur", usernameOK, false);
el_pwd.addEventListener("focus", checkPassword, false);
el_pwd.addEventListener("blur", passwordOK, false);
@import url(http://fonts.googleapis.com/css?family=Oswald);
body {
font-family: 'Oswald', 'Futura', sans-serif;
margin: 0px;
padding: 0px;
}
#feedback.warning {
background-image: url('https://cdn2.iconfinder.com/data/icons/freecns-cumulus/32/519791-101_Warning-128.png');
background-repeat: no-repeat;
background-size: 20px 20px;
padding-left: 30px;
}
#feedback.tip {
background-image: url('http://bibliomancy.org/images/icons/QuestionMark.png?1347492574');
background-repeat: no-repeat;
background-size: 20px 20px;
padding-left: 30px;
}
#ok {
position: absolute;
top: 5px;
left: 250px;
background-image: url('http://upload.wikimedia.org/wikipedia/commons/c/cc/Ambox_green_tick.png');
background-repeat: no-repeat;
background-size: 20px 20px;
padding-left: 30px;
height: 50px;
width: 50px;
display: none;
}
#ok2 {
position: absolute;
top: 30px;
left: 250px;
background-image: url('http://upload.wikimedia.org/wikipedia/commons/c/cc/Ambox_green_tick.png');
background-repeat: no-repeat;
background-size: 20px 20px;
padding-left: 30px;
height: 50px;
width: 50px;
display: none;
}
<form>
Username:
<input type="text" id="username">
<br>Password:
<input type="password" id="password">
</form>
<div id="feedback"></div>
<div id="ok"></div>
<div id="ok2"></div>