in the following java script code follow the directions below to modify the code
ID: 3860778 • Letter: I
Question
in the following java script code follow the directions below to modify the code
<!DOCTYPE html>
<html>
<head>
<!--
JavaScript 6th Edition
Chapter 6
Hands-on Project 6-1
Author:
Date:
Filename: index.htm
-->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hands-on Project 6-1</title>
<link rel="stylesheet" href="styles.css" />
<script src="modernizr.custom.65897.js"></script>
</head>
<body>
<header>
<h1>
Hands-on Project 6-1
</h1>
</header>
<article>
<h2>Personal Information</h2>
<form action="results.htm">
<div id="errorText"></div>
<div id="numErrorText"></div>
<fieldset id="contactinfo">
<label for="addrinput">
Street Address
</label>
<input type="text" id="addrinput" name="Address" required="required" placeholder="number and street name" />
<label for="cityinput">
City
</label>
<input type="text" id="cityinput" name="City" required="required" />
<label for="stateinput">
State/Province
</label>
<input type="text" id="stateinput" name="State" required="required" />
<label for="zipinput">
Zip/Postal Code
</label>
<input type="number" id="zipinput" name="Zip" required="required" />
<label for="ssn1">
Social Security Number
</label>
<input type="number" id="ssn1" name="SSN1" class="ssn" maxlength="3" required="required" />
<label for="ssn2" id="ssn2label">
Social Security Number (continued)
</label>
<input type="number" id="ssn2" name="SSN2" class="ssn" maxlength="2" required="required" />
<label for="ssn3" id="ssn3label">
Social Security Number (end)
</label>
<input type="number" id="ssn3" name="SSN3" class="ssn" maxlength="4" required="required" />
</fieldset>
<fieldset id="submitsection">
<input type="submit" id="submitBtn" value="Submit" />
</fieldset>
</form>
</article>
</body>
</html>
1. add JavaScript comments containing the text Hands-on Project - , your name, and today’s date, and then save the file to the HandsOnProject - folder with the name script.js.
2. Return to the index.htm file in your browser, within the body section, just before the clos- ing tag, add a script element, and then specify the file script.js as the source.
3.. In the opening <form> tag, add code to disable browser-based validation, and then save your changes.
.4. In the script.js file, add code instructing processors to interpret the contents in strict mode, and then create a global variable named formValidity and set its value to true.
.5.Add the following function to validate the required form elements:
}
if (requiredValidity === false) {
}
}.
6. Add the following function to trigger validation of required fields when the Submit button is clicked
}
}
7.Add the following function to trigger validation of required fields when the Submit button is clicked:
/* create event listeners */
function createEventListeners() {
}
}
Add the following code to call the createEventListeners() function when the page finishes loading:
/* validate form */
}
formValidity = true; // reset value for revalidation
validateRequired();
if (formValidity === true) {
document.getElementsByTagName("form")[0].submit();
}
}
8. Add the following code to call the createEventListeners() function when the page finishes loading
}
return to script.js in your editor, and then add the following function to validate input elements with the number type:
for (var i = 0; i < elementCount; i++) {
// validate all input elements of type "number" in fieldset
currentElement = numberInputs[i];
if (isNaN(currentElement.value) || (currentElement.value=== "")) {
}
}
if (numbersValidity === false) {
formValidity = false;
}
}
in the validate Form() function, add a call to the validateNumbers() function as follows:
evt.preventDefault(); // prevent form from submitting
} else {
evt.returnValue = false; // prevent form from submitting in IE8
document.getElementsByTagName("form")[0].submit();
}
Explanation / Answer
Changes made to script.js, index.htm as per the directions given. Since, Chegg not allowing to upload the files, Just pasting the files as below
Note : Create HandsOnProject and keep thses two files as directed for best result.
index.htm
<!DOCTYPE html>
<html>
<head>
<!--
JavaScript 6th Edition
Chapter 6
Hands-on Project 6-1
Author:
Date:
Filename: index.htm
-->
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hands-on Project 6-1</title>
<link rel="stylesheet" href="styles.css" />
<script src="modernizr.custom.65897.js"></script>
</head>
<!-- Onload javascript method added to sense the page load complete state and invoked createEventListeners(); -->
<body>
<header>
<h1>
Hands-on Project 6-1
</h1>
</header>
<article>
<h2>Personal Information</h2>
<!-- added code to disable the browser validation -->
<form action="results.htm" novalidate>
<div id="errorText"></div>
<div id="numErrorText"></div>
<fieldset id="contactinfo">
<label for="addrinput">
Street Address
</label>
<input type="text" id="addrinput" name="Address" required="required" placeholder="number and street name" />
<label for="cityinput">
City
</label>
<input type="text" id="cityinput" name="City" required="required" />
<label for="stateinput">
State/Province
</label>
<input type="text" id="stateinput" name="State" required="required" />
<label for="zipinput">
Zip/Postal Code
</label>
<input type="number" id="zipinput" name="Zip" required="required" />
<label for="ssn1">
Social Security Number
</label>
<input type="number" id="ssn1" name="SSN1" class="ssn" maxlength="3" required="required" />
<label for="ssn2" id="ssn2label">
Social Security Number (continued)
</label>
<input type="number" id="ssn2" name="SSN2" class="ssn" maxlength="2" required="required" />
<label for="ssn3" id="ssn3label">
Social Security Number (end)
</label>
<input type="number" id="ssn3" name="SSN3" class="ssn" maxlength="4" required="required" />
</fieldset>
<fieldset id="submitsection">
<input type="submit" id="submitBtn" value="Submit" />
</fieldset>
</form>
</article>
<!--script.js included -->
<script src="script.js"></script>
</body>
</html>
script.js
<!-- File information comment section -->
<!--
Project Name : Hands-on Project
Name : < your name>
Date : <today’s date>
-->
<!-- Strict mode and global varible formValidity added-->
"use strict";
var formValidity = true;
/* validate required fields */
function validateRequired() {
var inputElements = document.querySelectorAll(
"#contactinfo input");
var errorDiv = document.getElementById("errorText");
var elementCount = inputElements.length;
var requiredValidity = true;
var currentElement;
try {
for (var i = 0; i < elementCount; i++) {
// validate all input elements in fieldset
currentElement = inputElements[i];
if (currentElement.value === "") {
currentElement.style.background = "rgb(255,233,233)";
requiredValidity = false;
} else {
currentElement.style.background = "white";
}
}
if (requiredValidity === false) {
throw "Please complete all fields.";
}
errorDiv.style.display =
errorDiv.innerHTML = ""none";
}
catch(msg) {
errorDiv.style.display =
errorDiv.innerHTML = msg;
formValidity = false;
}
}
/* create event listeners */
function createEventListeners() {
alert(2);
var form = document.getElementsByTagName("form")[0];
if (form.addEventListener) {
form.addEventListener("submit", validateForm, false);
} else if (form.attachEvent) {
form.attachEvent("onsubmit", validateForm);
}
}
/* create event listeners */
function createEventListeners() {
var form = document.getElementsByTagName("form")[0];
if (form.addEventListener) {
form.addEventListener("submit", validateForm, false);
} else if (form.attachEvent) {
form.attachEvent("onsubmit", validateForm)
}
}
/* validate form */
function validateForm(evt) {
if (evt.preventDefault) {
evt.preventDefault(); // prevent form from submitting
} else {
evt.returnValue = false; // prevent form from submitting in IE8
}
formValidity = true; // reset value for revalidation
validateRequired();
if (formValidity === true) {
document.getElementsByTagName("form")[0].submit();
}
}
/* run setup functions when page finishes loading */
if (window.addEventListener) {
window.addEventListener("load", createEventListeners, false);
} else if (window.attachEvent) {
window.attachEvent("onload", createEventListeners);
}
/* validate number fields for older browsers */
function validateNumbers() {
var numberInputs = document.querySelectorAll("#contactinfo input[type=number]");
var elementCount = numberInputs.length;
var numErrorDiv = document.getElementById("numErrorText");
var numbersValidity = true;
var currentElement;
try {
for (var i = 0; i < elementCount; i++) {
// validate all input elements of type "number" in fieldset
currentElement = numberInputs[i];
if (isNaN(currentElement.value) || (currentElement.value=== "")) {
currentElement.style.background = "rgb(255,233,233)";
numbersValidity = false;
} else {
currentElement.style.background = "white";
}
}
if (numbersValidity === false) {
throw "Zip and Social Security values must be numbers.";
}
numErrorDiv.style.display = "none";
numErrorDiv.innerHTML = "";
}
catch(msg) {
numErrorDiv.style.display = "block";
numErrorDiv.innerHTML = msg;
formValidity = false;
}
}
function validateForm(evt) {
if (evt.preventDefault) {
evt.preventDefault(); // prevent form from submitting
} else {
evt.returnValue = false; // prevent form from submitting in IE8
formValidity = true; // reset value for revalidation
validateRequired();
validateNumbers();
if (formValidity === true) {
document.getElementsByTagName("form")[0].submit();
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.