ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business...

24
ITEC 136 ITEC 136 ITEC 136 ITEC 136 Business Programming Concepts Business Programming Concepts Week Week 08, 08, Part 01 Part 01 1 Overview Overview Week Week 7 7 Review Review • Sentinel controlled loops Sentinel controlled loops • Results controlled loops Results controlled loops • Flag controlled loops Flag controlled loops •break break and and continue continue keywords keywords Nested loops Nested loops 2 Nested loops Nested loops • Loop variable in outer loop becomes Loop variable in outer loop becomes part of the bounds in the inner loop part of the bounds in the inner loop

Transcript of ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business...

Page 1: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part 01Part 01

1

OverviewOverview

Week Week 7 7 ReviewReview

•• Sentinel controlled loopsSentinel controlled loops

•• Results controlled loopsResults controlled loops

•• Flag controlled loopsFlag controlled loops

•• breakbreak and and continuecontinue keywordskeywords

•• Nested loopsNested loops

2

•• Nested loopsNested loops

•• Loop variable in outer loop becomes Loop variable in outer loop becomes part of the bounds in the inner looppart of the bounds in the inner loop

Page 2: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Week 7 ReviewWeek 7 Review

•• Problem:Problem:

•• Print a sums Print a sums table like the table like the following. You following. You should input the should input the left and right left and right left and right left and right bounds and bounds and validate them.validate them.

3

Week Week 8 8 OverviewOverview

•• OutcomesOutcomes

•• Create and validate forms.Create and validate forms.

•• Describe and use formDescribe and use form--based events.based events.

4

Page 3: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part Part 0202

5

Forms and Form TagsForms and Form Tags

Forms and Form TagsForms and Form Tags

•• The The <form><form> tagtag

•• Groups a set of input fields into a Groups a set of input fields into a bundle that can be submitted to a bundle that can be submitted to a server.server.

<body><form id="myForm" name="myForm">

6

<form id="myForm" name="myForm"><!-- form child elements go in here -->

</form></body>

Page 4: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <<fieldsetfieldset>> tagtag

•• VisuallyVisually groups form elements togethergroups form elements together

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend>more controls here</fieldset>

7

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

Forms and Form TagsForms and Form Tags

•• The The <<fieldsetfieldset>> tagtag

•• VisuallyVisually groups form elements togethergroups form elements together

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend>more controls here</fieldset>

8

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

Page 5: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <<fieldsetfieldset>> tagtag

•• VisuallyVisually groups form elements togethergroups form elements together

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend>more controls here</fieldset>

9

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

“legend” labels the entire fieldset and everything in it.

Forms and Form TagsForms and Form Tags

•• The The <label><label> and and <input><input> tagstags

associates text with an input associates text with an input •• <label><label> associates text with an input associates text with an input

element (clicking the text focuses the element (clicking the text focuses the input element).input element).

•• <input><input> has attributes that identify the has attributes that identify the

type of input (text, submit, button, type of input (text, submit, button, type of input (text, submit, button, type of input (text, submit, button, radio, file, etc.)radio, file, etc.)

10

Page 6: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <label><label> and and <input><input> tagstags

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="name">Name:</label><input type="text" name="name" id="name" /><br />

</fieldset>

11

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

Forms and Form TagsForms and Form Tags

•• The The <label><label> and and <input><input> tagstags

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="name">Name:</label><input type="text" name="name" id="name" /><br />

</fieldset>

12

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

“for” and “id” need to match to make the association between the label and input control

Page 7: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <label><label> and and <input><input> tagstags

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="name">Name:</label><input type="text" name="name" id="name" /><br />

</fieldset>

13

<fieldset><legend>Output</legend>more controls here

</fieldset></form>

“for” and “id” need to match to make the association between the label and input control

Forms and Form TagsForms and Form Tags

•• The The <<textareatextarea>> tagtag

•• Used for multiUsed for multi--line input or simple line input or simple consoleconsole--based output.based output.

14

Page 8: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <<textareatextarea>> tagtag

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="name">Name:</label><input type="text" name="name" id="name" /><br />

</fieldset><fieldset>

15

<legend>Output</legend><textarea id="output" name="output" rows="7"cols="45">Lorem ipsum...</textarea>

</fieldset></form>

Forms and Form TagsForms and Form Tags

•• The The <<textareatextarea>> tagtag

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="name">Name:</label><input type="text" name="name" id="name" /><br />

</fieldset><fieldset>

16

<legend>Output</legend><textarea id="output" name="output" rows="7"cols="45">Lorem ipsum...</textarea>

</fieldset></form>

Page 9: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <select><select> tagtag

•• Can also use multipleCan also use multiple--selection lists as selection lists as well with the “multiple” and “size” well with the “multiple” and “size” attributes.attributes.

•• Combine with Combine with <option><option> to create dropto create drop--

down lists of elements to select.down lists of elements to select.down lists of elements to select.down lists of elements to select.

17

Forms and Form TagsForms and Form Tags

•• The The <select><select> tagtag

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="state">State:</label><select id="state">

<option value="OH">Ohio</option><option value="MI">Michigan</option>

18

<option value="IN">Indiana</option></select><br />

</fieldset></form>

Page 10: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• The The <select><select> tagtag

<form id="myForm" name="myForm"><fieldset><legend>Inputs</legend><label for="state">State:</label><select id="state">

<option value="OH">Ohio</option><option value="MI">Michigan</option>

19

<option value="IN">Indiana</option></select><br />

</fieldset></form>

Forms and Form TagsForms and Form Tags

•• Radio buttonsRadio buttons

•• Used to select 1 from manyUsed to select 1 from many

•• Use the <input> tag with attribute Use the <input> tag with attribute “type” set to “radio”“type” set to “radio”

•• Buttons are grouped based on the Buttons are grouped based on the “name” attribute“name” attribute“name” attribute“name” attribute

20

Page 11: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• Radio buttonsRadio buttons

<label for="state">State:</label><br /><input type="radio" id="state1" name="state"

value="OH" /><label for="state1">Ohio</label><br /><input type="radio" id="state2" name="state"

value="MI" /><label for="state2">Michigan</label><br />

21

<label for="state2">Michigan</label><br /><input type="radio" id="state3" name="state"

value="IN" /><label for="state3">Indiana</label><br />

Forms and Form TagsForms and Form Tags

•• Radio buttonsRadio buttons

<label for="state">State:</label><br /><input type="radio" id="state1" name="state"

value="OH" /><label for="state1">Ohio</label><br /><input type="radio" id="state2" name="state"

value="MI" /><label for="state2">Michigan</label><br />

22

<label for="state2">Michigan</label><br /><input type="radio" id="state3" name="state"

value="IN" /><label for="state3">Indiana</label><br />

Page 12: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• CheckboxesCheckboxes

•• Used to select many from manyUsed to select many from many

•• Use the <input> tag with attribute Use the <input> tag with attribute “type” set to “checkbox”“type” set to “checkbox”

•• Buttons are grouped based on the Buttons are grouped based on the “name” attribute“name” attribute“name” attribute“name” attribute

23

Forms and Form TagsForms and Form Tags

•• CheckboxesCheckboxes

<label for="state">State:</label><br /><input type="checkbox" id="state1" name="state"

value="OH" /><label for="state1">Ohio</label><br /><input type="checkbox" id="state2" name="state"

value="MI" /><label for="state2">Michigan</label><br />

24

<label for="state2">Michigan</label><br /><input type="checkbox" id="state3" name="state"

value="IN" /><label for="state3">Indiana</label><br />

Page 13: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Forms and Form TagsForms and Form Tags

•• CheckboxesCheckboxes

<label for="state">State:</label><br /><input type="checkbox" id="state1" name="state"

value="OH" /><label for="state1">Ohio</label><br /><input type="checkbox" id="state2" name="state"

value="MI" /><label for="state2">Michigan</label><br />

25

<label for="state2">Michigan</label><br /><input type="checkbox" id="state3" name="state"

value="IN" /><label for="state3">Indiana</label><br />

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part Part 0303

26

Form ProcessingForm Processing

Page 14: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Responding to eventsResponding to events

•• Can respond to many kinds of events, Can respond to many kinds of events, such as clicks, focus, blur, change, such as clicks, focus, blur, change, keypresskeypress, etc., etc.

•• Use the “Use the “onXXXonXXX” attributes within the ” attributes within the form element tags to execute code in form element tags to execute code in form element tags to execute code in form element tags to execute code in response to an event (i.e. response to an event (i.e. onclickonclick="="doSomethingdoSomething()"()"))

27

Form ProcessingForm Processing

•• Reading an input field’s valueReading an input field’s value

•• Use Use to get to get •• Use Use document.getElementByIddocument.getElementById()() to get to get

the field, then read the value, then the field, then read the value, then convert the value into some useful convert the value into some useful formform

28

Page 15: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Reading an input field’s valueReading an input field’s value

function getValueFromField(fieldId, conversionFunction){

var element = document.getElementById(fieldId);if (element == null) {

return null;}if (conversionFunction != undefined) {

29

if (conversionFunction != undefined) {return conversionFunction(element.value);

}return element.value;

}

Form ProcessingForm Processing

•• Reading an input field’s valueReading an input field’s value

function getValueFromField(fieldId, conversionFunction){

var element = document.getElementById(fieldId);if (element == null) {

return null;}if (conversionFunction != undefined) {

var myInteger = getValueFromField("field1", parseInt);

var myFloat = getValueFromField("field2", parseFloat);

var myString = getValueFromField(

30

if (conversionFunction != undefined) {return conversionFunction(element.value);

}return element.value;

}

"field3");

Page 16: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Reading an input field’s valueReading an input field’s value

function getValueFromField(fieldId, conversionFunction){

var element = document.getElementById(fieldId);if (element == null) {

return null;}if (conversionFunction != undefined) {

var myInteger = getValueFromField("field1", parseInt);

var myFloat = getValueFromField("field2", parseFloat);

var myString = getValueFromField(

31

if (conversionFunction != undefined) {return conversionFunction(element.value);

}return element.value;

}

"field3");These strings match the “id” attribute of the input element.

Form ProcessingForm Processing

•• Field validationField validation

•• Can use “if/else” statements to check Can use “if/else” statements to check values and rangesvalues and ranges

32

Page 17: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Field validationField validation

•• Can use “if/else” statements to check Can use “if/else” statements to check values and rangesvalues and rangesfunction validateNonEmpty(elementId)

{var elt = document.getElementById(elementId);if (elt.value == "" || elt.value == null){

addError(elementId + " may not be empty.");

33

addError(elementId + " may not be empty.");return false;

}return true;

}

Form ProcessingForm Processing

•• Field validationField validation

•• Can use “if/else” statements to check Can use “if/else” statements to check values and rangesvalues and ranges

•• Frequently want the field to match a Frequently want the field to match a particular pattern (i.e. zip codes)particular pattern (i.e. zip codes)

•• Use a Use a regular expressionregular expression to do pattern to do pattern •• Use a Use a regular expressionregular expression to do pattern to do pattern matchingmatching

34

Page 18: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Field validationField validation

•• Regular expressions Regular expressions –– an entire data an entire data type and language in itself!type and language in itself!function validateIsZipcode(elementId)

{if (validateNonEmpty(elementId)) {

var elt = document.getElementById(elementId);var pattern = /^\d{5}([\-]\d{4})?$/;if (!pattern.test(elt.value)) {

35

if (!pattern.test(elt.value)) {addError(element + " is not valid.");

}}

}

Form ProcessingForm Processing

•• Field validationField validation

•• Regular expressions Regular expressions –– an entire data an entire data type and language in itself!type and language in itself!function validateIsZipcode(elementId)

{if (validateNonEmpty(elementId)) {

var elt = document.getElementById(elementId);var pattern = /^\d{5}([\-]\d{4})?$/;if (!pattern.test(elt.value)) {

36

if (!pattern.test(elt.value)) {addError(element + " is not valid.");

}}

}

This apparent gobbledygook is a pattern that can be used to test strings. Called a “regular expression.”

Page 19: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Form ProcessingForm Processing

•• Field validationField validation

•• Regular expressions Regular expressions –– an entire data an entire data type and language in itself!type and language in itself!

•• See pages 78See pages 78--84 of “Learning JavaScript”84 of “Learning JavaScript”

37

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part Part 0404

38

MiscellaneousMiscellaneous

Page 20: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Dynamic HTMLDynamic HTML

•• Changing content on the pageChanging content on the page

•• Create a Create a regionregion•• Create a Create a <div id="<div id="foofoo"></div>"></div> regionregion

•• Use Use document.getElementByIddocument.getElementById("("foofoo")")

to get access to the divisionto get access to the division

•• Use the “Use the “innerHTMLinnerHTML” attribute to ” attribute to

overwrite the contents of the divisionoverwrite the contents of the divisionoverwrite the contents of the divisionoverwrite the contents of the division

39

Dynamic HTMLDynamic HTML

•• Changing content on the pageChanging content on the page

<body><input type="button" onclick="fillDiv('output')"

value="Fill!" /><input type="button" onclick="clearDiv('output')"

value="Clear!" /><div id="output"></div>

40

<div id="output"></div></body>

Page 21: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Dynamic HTMLDynamic HTML

•• Changing content on the pageChanging content on the page

function fillDiv(divId){

var div = document.getElementById(divId);div.innerHTML = "<h1>Hello world!</h1>"

}function clearDiv(divId)

41

function clearDiv(divId){

var div = document.getElementById(divId);div.innerHTML = "";

}

Dynamic HTMLDynamic HTML

•• Changing content on the pageChanging content on the page

function fillDiv(divId){

var div = document.getElementById(divId);div.innerHTML = "<h1>Hello world!</h1>"

}function clearDiv(divId)

42

function clearDiv(divId){

var div = document.getElementById(divId);div.innerHTML = "";

}

Page 22: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Questions?Questions?

43

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part Part 0505

44

Self quizSelf quiz

Page 23: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Self QuizSelf Quiz

•• What tags permit you to create radio What tags permit you to create radio buttons? Checkboxes? Dropbuttons? Checkboxes? Drop--down down buttons? Checkboxes? Dropbuttons? Checkboxes? Drop--down down selects? What events do these selects? What events do these controls generate?controls generate?

•• How do you programmatically How do you programmatically access/change the values of these access/change the values of these

45

access/change the values of these access/change the values of these controls through controls through JavascriptJavascript??

ITEC 136ITEC 136ITEC 136ITEC 136Business Programming ConceptsBusiness Programming Concepts

Week Week 08, 08, Part Part 0606

46

Upcoming deadlinesUpcoming deadlines

Page 24: ITEC 136 - Franklin Universitycs.franklin.edu/~whittakt/ITEC136/Week08.pdf · ITEC 136 Business Programming Concepts Week Week 08, 08, Part Part 0066 46 Upcoming deadlines. Upcoming

Upcoming DeadlinesUpcoming Deadlines

•• Homework Homework 7 7 –– due due March 2March 2

•• PreclassPreclass exercise 9 exercise 9 –– due March 2due March 2

47