<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Exercise 4</title> <style> #notify { color: red; display: none; } </style> <script> function checkSubmit(e) { var fname = document.getElementById("fname").value; var notification = document.getElementById("notify"); if (fname == "") { notification.style.display = "block" e.preventDefault( ); } else { notification.style.display = "none"; } } function init( ) { document.getElementById("form1").addEventListener("submit", checkSubmit); } window.addEventListener("load", init); </script> </head> <body> <h1>Exercise 4</h1> <form id="form1" action="http://ectweb.cs.depaul.edu/sjost/receipt.php" method="POST"> <label for="fname">First Name:</label><br> <input type="text" id="fname" name="fname"><br> <span id="notify">First name is a required field<br>.</span><br> <input type="submit" value="Submit Form"> </form> </body> </html>
<form action="https:www.server.com/receipt.php" method="get"> <input type="text" placeholder="Enter your name:"><br> <input type="number" placeholder="Enter your age:"> </form>Answer: both the name and age fields must have name attributes for these values to be sent to the server.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Square Root Calculator</title> <script> window.onload = ( ) => { document.querySelector("#btn1").onclick = ( ) => { var x = document.querySelector("#in1").value; var output = document.querySelector("#out1"); output.value = Math.sqrt(x); }; }; </script> </head> <body> <h1>Square Root Calculator</h1> <input type="number" step="any" id="in1"><br><br> <button id="btn1">Compute Square Root</button> <input type="text" id="out1"> </body> </html>
setInterval(callbackFunction, numMillisecs);
var a = [81]; a[4] = 37; document.writeln(a); document.writeln(a[2]); // Ans: 81,,,,37 undefined
function printArray(a) { document.writeln(a); } var a = [2, 3, 5, 7, 11]; printArray(a); // Output: 2,3,5,7,11
var a = [5, 3, 11, 2, 13, 7]; a.sort((s, t) => s - t); document.writeln(a); // Output 2,3,5,7,11,13
var a2d = [[5, 7, 2, 0], [9, 3, 1, 7], [2, 5, 3, 0], [1, 8, 4, 2]];
document.writeln(a2d[1][3] + "<br>"); document.writeln(a2d[1] + "<br>"); document.writeln(a2d); // Output 7 9,3,1,7 5,7,2,0,9,3,1,7,2,5,3,0,1,8,4,2
function make2dArray(size) { var arr = [ ]; for(let i = 0; i < size; i++) { arr.push([0]); for(let j = 0; j < size; j++) { arr[i][j] = 0; } } return arr; }
Math.floor(Math.random( ) * 2);to generate random 0s and 1s with equal probability.
function make2dRandomArray(size) { var arr = [ ]; for(let i = 0; i < size; i++) { arr.push([0]); for(let j = 0; j < size; j++) { arr[i][j] = Math.floor(Math.random( ) * 2); } } return arr; }
function print2dArray(arr) { var len = arr.length; for(let i = 0; i < len; i++) { for(let j = 0; j < len; j++) { document.write(arr[i][j]); } document.writeln("<br>"); } } // Output: 111111110010010 100001111111001 010000011010101 100101100010101 100110011010000 000100101000110 001100101011000 010010110110001 011110000011001 111010000111010 101000011111100 010101100010111 000110011111110 110000100011110 000010010000000
00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000 00000101100000000000 00011001110000000000 00011101100000000000 00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000 00000000000000000000In this array, 1 = alive and 0 = dead or non-existant. Here is the array represented with spaces (dead) and Xs (alive) instead of zeros and ones:
X XX XX XXX XXX XX
<!DOCTYPE html> <html> <body> <canvas id="myCanvas" width="500" height="500" style="border:3px solid #000000;"> Your browser does not support the canvas element. </canvas> <p id="out"></p> <script> var p = document.getElementById("out"); function make2dArray(size) { var arr = [ ]; for(let i = 0; i < size; i++) { arr.push([0]); for(let j = 0; j < size; j++) { arr[i][j] = 0; } } return arr; } function print2dArray(arr) { var len = arr.length; for(let i = 0; i < len; i++) { for(let j = 0; j < len; j++) { document.write(arr[i][j]); } document.writeln("<br>"); } } const size = 100; var a = make2dArray(size); // Seed 2d array with random 0, 1 values. for(let i = 1; i < size - 1; i++) { for(let j = 1; j < size - 1; j++) { a[i][j] = Math.random( ) >= 0.5 ? 1 : 0; } } //document.writeln("<br><br>"); //print2dArray(a); // Display grid from array values function displayGrid( ) { const cellSize = 5; var canvas = document.getElementById("myCanvas"); var ctx = canvas.getContext("2d"); for(var j = 1; j < size - 1; j++) { var y = cellSize * j; for(var i = 1; i < size - 1; i++) { x = cellSize * i; ctx.fillStyle = a[i][j] ? "#800000" : "#FFFFFF"; ctx.fillRect(x, y, cellSize, cellSize); } } } displayGrid( ); var b = make2dArray(size); var n = 0; function computeNextGeneration( ) { for(let i = 1; i < size - 1; i++) { for(let j = 1; j < size - 1; j++) { let sum = a[i][j-1] + a[i][j+1] + a[i-1][j-1] + a[i-1][j] + a[i-1][j+1] + a[i+1][j-1] + a[i+1][j] + a[i+1][j+1]; if (sum < 2) { b[i][j] = 0; } else if(sum == 2) { b[i][j] = a[i][j]; } else if(sum == 3) { b[i][j] = 1; } else { b[i][j] = 0; } } } // Copy next generation into array a. for(let i = 1; i < size - 1; i++) { for(let j = 1; j < size - 1; j++) { a[i][j] = b[i][j]; } } displayGrid( ); p.innerHTML = "n = " + n; n++; } setInterval(computeNextGeneration, 1000); </script> </body> </html>
------------------------------------------ <!DOCTYPE html> <!-- SlideInOut Example Source code file: styles.css Lorem ipsum paragraph slides in or out depending on button clicked. --> <html lang="en"> <head> <title>SlideInOut Example</title> <script src="script.js"></script> <link rel="stylesheet" href="styles.css"> </head> <body> <!-- Click buttons to slide paragraph in or out. --> <p> <button id="btnin">Slide In</button> <button id="btnout">Slide Out</button> </p> <p id ="p1"> Lorem ipsum dolor sit amet, consectetur .... vulputate tempor magna. </p> </body> </html> ------------------------------------------ /* Source code file: styles.css */ body { font-family: 150%; background-color: #E0E0FF; } #p1 { background-color: #A0A0FF; overflow: hidden; } ------------------------------------------ // SlideInOut Example // Source code file: styles.css // Lorem ipsum paragraph slides in // or out depending on button clicked. var timer = null; function slideOut( ) { var divTag = document.getElementById("p1"); var percent = 100; var ht = 110; clearInterval(timer); timer = setInterval(decreaseHeight, 25); function decreaseHeight( ) { if (percent <= 0) { clearInterval(timer); } else { percent -= 5; divTag.style.height = percent * 0.01 * ht + "px"; } } } function slideIn( ) { var divTag = document.getElementById("p1"); var percent = 0; var ht = 110; clearInterval(timer); timer = setInterval(increaseHeight, 25); function increaseHeight( ) { if (percent >= 100) { clearInterval(timer); } else { percent += 5; divTag.style.height = percent * 0.01 * ht + "px"; } } } function init( ) { var button1 = document.getElementById("btnout"); button1.addEventListener("click", slideOut); var button2 = document.getElementById("btnin"); button2.addEventListener("click", slideIn); } window.addEventListener("load", init); ------------------------------------------
/* Here is the CSS file styles.css Use the same HTML file as previous problem without the buttons. No JavaScript needed */ body { font-size: 150%; font-family: Verdana; background-color: #E0E0FF; } #p1 { overflow: hidden; animation-duration: 1.0s; animation-name: slidein; } @keyframes slidein { from { height: 0px; } to { height: 250px; } }
<!DOCTYPE html> <!-- FadeInOut Example Source code file: styles.css Lorem ipsum paragraph fades in or out depending on button clicked. --> <html lang="en"> <head> <title>FadeInOut Example</title> <script src="script.js"></script> <link rel="stylesheet" href="styles.css"> </head> <body id="b"> <!-- Click buttons to fade paragraph in or out. --> <p> <button id="btnin">Fade In</button> <button id="btnout">Fade Out</button> </p> <p id ="p1"> Lorem ipsum dolor sit amet, consectetur ... vulputate tempor magna. </p> </body> </html> -------------------------------------------------- /* Source code file: styles.css */ body { font-family: 150%; background-color: #E0E0FF; } -------------------------------------------------- // Source code file: styles.css var timer = null; function fadeOut( ) { var doc = document.getElementById("b"); var percent = 100; var redComponent = 224; var greenComponent = 224; var blueComponent = 255; clearInterval(timer); timer = setInterval(decreaseBrightness, 25); function decreaseBrightness( ) { if (percent <= 0) { clearInterval(timer); } else { percent -= 5; var rDec = Math.round(redComponent * percent * 0.01); var gDec = Math.round(greenComponent * percent * 0.01); var bDec = Math.round(blueComponent * percent * 0.01); var rHex = rDec.toString(16).padStart(2, "0"); var gHex = gDec.toString(16).padStart(2, "0"); var bHex = bDec.toString(16).padStart(2, "0"); var hexColor = `#${rHex}${gHex}${bHex}`; doc.style.backgroundColor = hexColor; } } } function fadeIn( ) { var doc = document.getElementById("b"); var percent = 0; var redComponent = 224; var greenComponent = 224; var blueComponent = 255; clearInterval(timer); timer = setInterval(increaseBrightness, 25); function increaseBrightness( ) { if (percent >= 100) { clearInterval(timer); } else { percent += 5; var rDec = Math.round(redComponent * percent * 0.01); var gDec = Math.round(greenComponent * percent * 0.01); var bDec = Math.round(blueComponent * percent * 0.01); var rHex = rDec.toString(16).padStart(2, "0"); var gHex = gDec.toString(16).padStart(2, "0"); var bHex = bDec.toString(16).padStart(2, "0"); var hexColor = `#${rHex}${gHex}${bHex}`; doc.style.backgroundColor = hexColor; } } } function init( ) { var button1 = document.getElementById("btnout"); button1.addEventListener("click", fadeOut); var button2 = document.getElementById("btnin"); button2.addEventListener("click", fadeIn); } window.addEventListener("load", init);