• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 882
  • Last Modified:

JavaScript Undefined Error

I keep getting "chkName" is undefined.
I also get error expected ")"

I have a userinfo.js file along with this.
Can someone  help me figure out why i am getting undefined errors.
<?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 />
 
   		<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;
   // -->
 
    </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 form is" ddd-ddd-dddd \n" +
				"Please go back and fix your phone number");
		myPhone.focus();
		myPhone.select();
		return false;
	} else
	  return true;
}

Open in new window

0
ChadAnglin
Asked:
ChadAnglin
1 Solution
 
mr_egyptianCommented:
Change to the following starting on line 89  above.  You have a stray double quote.
alert("The phone number you entered (" + myPhone.value +
") is not in the correct form. \n" +
"The correct form is ddd-ddd-dddd \n" +
"Please go back and fix your phone number");

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

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