View Single Post
Old 11-19-2004, 08:09 AM   #3 (permalink)
kaeli69
Registered User
 
kaeli69's Avatar
 
Join Date: Apr 2003
Posts: 30
kaeli69 is an unknown quantity at this point
Oops - code correction

I should really fully test these things before I post them.

Correction to code:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test 3 - JavaScript</title>

<script type="text/javascript">
function isBlank(field)
   {
   // True if val is whitespace only or empty.
   var re = /\S+/;
   return (field.length==0 || !re.test(field));
   }

function checkName(field)
   {
   /* 5 to 15 alphanumeric characters, inclusive */
   var re = /^\w{5,15}$/;
   if (!re.test(field))
      {
  		alert("The name field must be between 5 and 15 alphanumeric characters. ");
		field.focus();
		return false;
      }
   else return true;
   }

function checkPsswd(field)
   {
   /* 5 to 15 characters, inclusive */
   var re_num = /^\w{5,15}$/;
   var re_case = /^\w*([a-z]+\w*[A-Z]+|[A-Z]+\w[a-z]+)\w*$/;
   if (!re_num.test(field))
      {
  		alert("The password field must be between 5 and 15 alphanumeric characters.");
		field.focus();
		return false;
      }
   if (!re_case.test(field))
      {
  		alert("The password field must have at least one lower case letter and at least one uppwe-case letter.");
		field.focus();
		return false;
      }

   else return true;
   }

function validate(frm)
   {
   if (isBlank(frm.uname.value))
      {
   	alert("Name required");
   	frm.uname.focus();
   	return false;
   	}
   if (isBlank(frm.psswd.value))
      {
   	alert("Password required");
   	frm.psswd.focus();
   	return false;
   	}
   if (isBlank(frm.phone.value))
      {
   	alert("Phone required");
   	frm.phone.focus();
   	return false;
   	}
   if (isBlank(frm.date.value))
      {
   	alert("Date required");
   	frm.date.focus();
   	return false;
   	}

   formatNumber(frm.phone.value);
   return (checkName(frm.uname.value) &&
           checkPsswd(frm.psswd.value))
   }	
		
function formatNumber(field)
   {
   /* if blank, don't do anything */
   if (isBlank(field.value)) return;

   /* user must enter 10 digits or a fully formatted number. If already formatted, exit. */
   var re_digits = /^\d{10}$/;
   var re_formatted = /^\(\d\d\d\) \d\d\d-\d\d\d\d$/;
   if (re_formatted.test(field.value)) return;

   /* got here, need to format */
   // check is 10 digits
   if (!re_digits.test(field.value))
      {
      alert("Phone number must be 10 digits or in the form (123) 555-5555");
      return;
      }
   // okay, got 10 digits - format them to (123) 555-5555
   var newNumber = "(" + field.value.substring(0,3) + ") " + field.value.substring(3,6) + "-" + field.value.substring(6,10);
   alert(newNumber);
   field.value = newNumber;
   }
</script>
</head>
<body>
* All fields MUST be completed.
<form name="frm1" method="get" action="" onsubmit="return validate(this);">
<p><strong>Name: </strong> 
<input name="uname" type="text" id="uname" maxlength="15" onchange="checkName(this.value);">
(5-15 characters)<br>
<br>
<strong>Password: 
<input name="psswd" type="password" id="psswd" maxlength="15" onchange="checkPsswd(this.value);">
<br>
<br>
Phone: 
<input type="text" name="phone" size="20" onchange="formatNumber(this);">
</strong>(10 digits)<strong><br>
<br>
Date: <input name="date" id="date" type="text"> <br>
<br>
<input type="submit" name="Submit" value="Submit">
</strong></p>
</form>
<br>
</body>
</html>
kaeli69 is offline   Reply With Quote