I am studying custom validation of forms. My HTML code is here:
<!DOCTYPE html>
<html>
<head>
<title>q
JavaScript
</title>
<link rel="stylesheet" src="validate.css">
</head>
<body>
<article>
<form id="register" action = "register" method = "post">
<fieldset>
<legend> Register </legend>
<!--For email -->
<label for = "email"> Email: </label>
<input type= "email" id = "email" name="email" autofocus required />
<br>
<!--For password1 -->
<label for = "pass1" > Password: </label>
<input type = "password" id = "pass1" name = "pass1" autofocus required/>
<span id = "strength"> </span>
<br>
<!--For password2 -->
<label for = "pass2" > Repeat: </label>
<input type = "password" id = "pass2" name = "pass2" autofocus required/>
<br>
<input type="submit" value="Submit"/>
</fieldset>
</form>
</article>
<script type="text/javascript" src="validate.js"></script>
</body>
</html>
The css is here :
label
{
clear: both;
float: left;
width: 40%;
text-align: right;
margin: 0 2% 10px 0;
color: #666;
vertical-align:middle;
}
input {
margin: 0 2% 10px 0;
}
The javascript is here:
//dom objects
var form =
{
register: document.getElementById("register"),
email: document.getElementById("email"),
pass1: document.getElementById("pass1"),
pass2: document.getElementById("pass2"),
strength: document.getElementById("strength")
}
form.register.addEventListener("submit",CheckForm);
form.pass1.addEventListener("keypress",NoSpaces);
form.pass2.addEventListener("keypress",NoSpaces);
form.strength.addEventListener("keypress",PwdStrength);
//to give password nature
var strtxt= ["weak" , "average","strong"];
var strclr= ["red", "yellow", "green"];
function PwdStrength(e)
{
var pass = form.pass1.value;
//count upper case
var uc = pass.match(/[A-Z]/g);
//count digit
var nm = pass.match(/\d/g);
//count other characters
var nw = pass.match(/\W/g);
var s=pass.length + uc + 2*nm + 3*nw ;
s = Math.min(Math.floor(s/10),2);
form.strength.textContent = strtxt[s];
form.strength.style.color = strcolor[s];
}
function NoSpaces(e)
{
if(e.charCode == 32 )
{
e.preventDefault();
}
}
var reEmail = /^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/;
function CheckForm(e)
{
var msg="";
if ( !reEmail.test(form.email.value))
{
msg+="Email address ";
}
if ( form.pass1.value == "" || form.pass1.value != form.pass2.value )
{
msg+= "Password ";
}
if ( msg != "")
{
msg= "check Your:"+msg;
}
else
{
msg +="successful submission";
}
alert(msg);
e.preventDefault();
}
You can see it here: http://jsfiddle.net/EjqhL/
Please help me to fix:
I want to match password, which I am not getting.
Also customing validation.