Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 527
  • Last Modified:

JavaScript Function

I am receving errors on the checks for Age and Weight in my userinfo.js file
I have put both my userinfo.html and userinfo.js in the code below.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml11.dtd">
 
<!-- userinfo.html    a document for userinfo.js
      -->
 
<html xmlns = "http://www.w3.org/1999/xhtml">
   <head>
      <title> Illustrates form Input Validation </title>
      <script type = "text/javascript" src = "userinfo.js" >
      </script>
   </head>
   <body>
   <h3> Customer Information </h3>
   <form action = "">
 
   	<p>
   		<label>
   			<input type = "text" id = "custName" />
   			Name (last name, first name, middle initial)
   		</label>
   		<br /><br />
 
 
   		<label>
   			<input type = "text" id = "phone" />
   			Phone number (ddd-ddd-dddd)
   		</label>
   		<br /><br />
 
 
   		<label>
   			<input type = "text" id = "custAge" />
   			Age (Must be 18 or older)
   			</label>
   			<br /><br />
 
 
   		<label>
   			<input type = "text" id = "custWeight" />
   			Weight (Must be between 80-300)
   			</label>
   			<br /><br />
 
 
 
 
   		<input type = "reset" id = "reset" />
 
   		<input type = "submit" id = "submit" />
   	</p>
   </form>
 
   <!-- An inline script for the event handler registrations -->
   		<script type = "text/javascript">
   		   <!--
   // Set form element object properties to their
   // corresponding event handler functions
 
 
   		document.getElementById("custName").onchange = chkName;
   		document.getElementById("phone").onchange = chkPhone;
   		document.getElementById("custAge").onchange = chkAge;
   		document.getElementById("custWeight").onchange = chkWeight;
   // -->
 
    </script>
 
   </body>
</html>
 
 
 
// userinfo.js
// an example of input validation using the change and submit events
 
// The event handler function for the name text box
 
function chkName() {
	var myName = document.getElementById("custName");
	
	// Test the format of the input name
	// Allow the spaces after the commas to be optional
	// Allow the period after the inital to be optional
		var pos = myName.value.search(
			/^[A-Z][a-z]+, ?[A-Z][a-z]+, ?[A-Z]\.?$/);
		if (pos != 0) {
			alert("The name you entered (" + myName.value +
				") is not in the correct form. \n" +
				"The correct form is: " +
				"last-name, first-name, middle-intial \n" +
				"Please go back and fix your name");
		myName.focus();
		myName.select();
		return false;
		} else
		  return true;
	}
	
	// The event handler function for the phone number text box
	
function chkPhone() {
	var myPhone = document.getElementById("phone");
		
	  // Test the format of the input phone number
		var pos = myPhone.value.search(/^\d{3}-\d{3}-\d{4}$/);
		if (pos != 0) {
			alert("The phone number you entered (" + myPhone.value +
			") is not in the correct form. \n" +
			"The correct format is ddd-ddd-dddd \n" +
			"Please go back and fix your phone number");
		myPhone.focus();
		myPhone.select();
		return false;
		} else
		  return true;
		}
		
		
// The event handler function for checking the age
	
function chkAge() {
	var myAge = document.getElementById("custAge");
	
	//Test the format
	var pos = myAge.value.search();
	if (pos < 18)	{
		alert("The age you entered (" + myAge.value + 
		") is not in the correct form. \n" +
		"The correct format is 18 years and older \n" +
		"Please go back and fix your age");
		myAge.focus();
		myAge.select()
		return false;
		
	} else
	return true;
}
 
 
// Checking the Weight for correct format
 
function chkWeight() {
	var myWeight = document.getElementById("custWeight");
	
	// test format
	var pos = myWeight.value.search();
	if (80 > pos > 300)	{
		alert("The weight you entered (" + myWeight.value +
		") is not in the correct form. \n" +
		"The correct format is between 80-300. \n" +
		"Please go back and fix your weight");
		myWeight.focus();
		myWeight.select()
		return false;
		} else
		return true;
	}

Open in new window

0
ChadAnglin
Asked:
ChadAnglin
1 Solution
 
ftaco96Commented:
1) You don't need the .search() to get the values from the textboxes
2) You should use an or ("||") to test weight values ......  if (80 > pos || pos > 300) {


function chkAge() {
      var myAge = document.getElementById("custAge");

      //Test the format
      var pos = myAge.value;
      if (pos < 18)      {



// Checking the Weight for correct format

function chkWeight() {
      var myWeight = document.getElementById("custWeight");

      // test format
      var pos = myWeight.value;
      if (80 > pos || pos > 300)      {
0

Featured Post

New feature and membership benefit!

New feature! Upgrade and increase expert visibility of your issues with Priority Questions.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now