HTML/XHTML FormsWhat are forms?Forms and JavaScriptThe <form> tagThe <input> tagText inputButtonsRadio buttonsLabelsCheckboxesDrop-down menu or listHidden fieldsA complete exampleThe EndJan 14, 2019HTML/XHTML Forms2What are forms?<form> is just another kind of XHTML/HTML tagForms are used to create (rather primitive) GUIs on Web pagesUsually the purpose is to ask the user for informationThe information is then sent back to the serverA form is an area that can contain form elementsThe syntax is: <form parameters> ...form elements... </form>Form elements include: buttons, checkboxes, text fields, radio buttons, drop-down menus, etcOther kinds of tags can be mixed in with the form elementsA form usually contains a Submit button to send the information in he form elements to the serverThe form’s parameters tell JavaScript how to send the information to the server (there are two different ways it could be sent)Forms can be used for other things, such as a GUI for simple programs3Forms and JavaScriptThe JavaScript language can be used to make pages that “do something”You can use JavaScript to write complete programs, but...Usually you just use snippets of JavaScript here and there throughout your Web pageJavaScript code snippets can be attached to various form elementsFor example, you might want to check that a zipcode field contains a 5-digit integer before you send that information to the serverMicrosoft calls its version of JavaScript “active scripting”Forms can be used without JavaScript, and JavaScript can be used without forms, but they work well togetherJavaScript for forms is covered in a separate lecture4The <form> tagThe <form arguments> ... </form> tag encloses form elements (and probably other elements as well)The arguments to form tell what to do with the user inputaction="url" (required)Specifies where to send the data when the Submit button is clickedmethod="get" (default)Form data is sent as a URL with ?form_data info appended to the endCan be used only if data is all ASCII and not more than 100 charactersmethod="post"Form data is sent in the body of the URL requestCannot be bookmarked by most browserstarget="target"Tells where to open the page sent as a result of the requesttarget= _blank means open in a new windowtarget= _top means use the same window5The <input> tagMost, but not all, form elements use the input tag, with a type="..." argument to tell which kind of element it istype can be text, checkbox, radio, password, hidden, submit, reset, button, file, or imageOther common input tag arguments include:name: the name of the elementid: a unique identifier for the elementvalue: the “value” of the element; used in different ways for different values of type readonly: the value cannot be changeddisabled: the user can’t do anything with this elementOther arguments are defined for the input tag but have meaning only for certain values of type6Text inputA text field: <input type="text" name="textfield" value="with an initial value" />A multi-line text field <textarea name="textarea" cols="24" rows="2">Hello</textarea>A password field: <input type="password" name="textfield3" value="secret" />• Note that two of these use the input tag, but one uses textarea7Buttons A submit button: <input type="submit" name="Submit" value="Submit" />A reset button: <input type="reset" name="Submit2" value="Reset" />A plain button: <input type="button" name="Submit3" value="Push Me" />submit: send datareset: restore all form elements to their initial statebutton: take some action as specified by JavaScript• Note that the type is input, not “button”8Radio buttonsRadio buttons:<br><input type="radio" name="radiobutton" value="myValue1" />male<br><input type="radio" name="radiobutton" value="myValue2” checked="checked" />femaleIf two or more radio buttons have the same name, the user can only select one of them at a timeThis is how you make a radio button “group”If you ask for the value of that name, you will get the value specified for the selected radio buttonAs with checkboxes, radio buttons do not contain any text9LabelsIn many cases, the labels for controls are not part of the control<input type="radio" name="gender" value="m" />maleIn this case, clicking on the word “male” has no effectA label tag will bind the text to the control<label><input type="radio" name="gender" value="m" />male</label>Clicking on the word “male” now clicks the radio buttonw3schools says that you should use the for attribute:<label for="lname">Last Name:</label><input type="text" name="lastname" id="lname" />In my testing (Firefox and Opera), this isn’t necessary, but it may be for some browsersLabels also help page readers read the page correctlySome browsers may render labels differently10CheckboxesA checkbox: <input type="checkbox" name="checkbox" value="checkbox" checked="checked">type: "checkbox"name: used to reference this form element from JavaScriptvalue: value to be returned when element is checkedNote that there is no text associated with the checkboxUnless you use a label tag, only clicking on the box itself has any effect11Drop-down menu or listA menu or list:<select name="select"> <option value="red">red</option> <option value="green">green</option> <option value="BLUE">blue</option></select>Additional arguments:size: the number of items visible in the list (default is "1")multipleif set to "true" (or just about anything else), any number of items may be selectedif omitted, only one item may be selectedif set to "false", behavior depends on the particular browser12Hidden fields<input type="hidden" name="hiddenField" value="nyah"> <-- right there, don't you see it?What good is this?All input fields are sent back to the server, including hidden fieldsThis is a way to include information that the user doesn’t need to see (or that you don’t want her to see)The value of a hidden field can be set programmatically (by JavaScript) before the form is submitted13A complete example <html><head><title>Get Identity</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><p><b>Who are you?</b></p><form method="post" action=""> <p>Name: <input
View Full Document