Software, your way.
burger menu icon
WillMaster

WillMaster > LibraryTutorials and Answers

FREE! Coding tips, tricks, and treasures.

Possibilities weekly ezine

Get the weekly email website developers read:

 

Your email address

name@example.com
YES! Send Possibilities every week!

HTML Form Tutorial, Part II

The first of this 2-part article (HTML Form Tutorial, Part I) showed you how to use the <form> tag and the many uses of the <input> tag, including hidden fields. This second part completes the tutorial with multi-line text input areas, selection lists, and a complete form using all the examples.

— The <textarea> Tag

When asking for multi-line input from the form user, use the <textarea> tag.

The optional attributes "cols" and "rows" specify how many characters wide and how many lines deep to make the text area input field. If these are not specified, individual browsers will use their own default sizes.

The optional attribute "wrap" specifies what to do with lines that are longer than the width of the text area input field.

wrap="off" specifies that the text is displayed exactly as typed. No lines will wrap.

wrap="hard" specifies that any line longer than the width of the text area input field will wrap to the next line. When the information is sent to the processing software, the hard wraps will be sent with the information.

wrap="soft" is the same as "hard" except the wrap applies only to the visual text area input field. The soft wraps are removed before the information is sent to the processing software.

Which wrap attribute you choose depends on the type of information the textarea field will hold and your preference. If you're asking for multi-line postal addresses, you'll probably want "off" so the line-by-line formatting of the addresses are not compromised. For free-form text paragraphs, "soft" may be appropriate. If the line lengths must not exceed a certain number of characters (when pre-formatting for an outgoing email, as example), then "hard" is the logical specification.

If you do not specify a wrap attribute, the browser will assign a default.

Anything between the <textarea> and </textarea> tags in your web page source code, including spaces or tabs, will be put into the text area field when the form is loaded. If you don't want a default value, keep those two tags together.

<form method="POST" action="/cgi-bin/handler.cgi">
<textarea name="message" cols="20" rows="5"></textarea>
<input type="submit" />
</form>

— The <select> Tag

The <select> tag is used to construct drop-down list boxes (sometimes called drop-down menus) and scrolling list boxes (sometimes called scrolling menus).

The <select> tag may contain a "size" attribute (which determines whether you get a drop-down or a scrolling list). It may also contain a multiple="multiple" attribute (applicable only to scrolling lists). Both of these are optional.

If the size attribute is used, it's value determines how many lines are visible in the scrolling list box. If the size attribute is not used, you will have a drop-down list instead. Here is an example of a size attribute:

size="4"

If the multiple="multiple" attribute is used, then the user can select multiple items in the scrolling list box. If it is not used, only one item can be selected.

The <select></select> tags contain a list of items. Each item on that list is specified with the <option></option> tags.

— The <option> Tag

Whether for for a drop-down list box or a scrolling list box, each <option></option> tag set contains one item of the list.

The <option> tag may contain the selected="selected" attribute to pre-select that item.

The "value" attribute may be optional. Most CGI programs require a value to work with the information to be processed. Some JavaScript functions do not. Additionally, some browsers default the value to the list item when no value attribute is provided.

Here are examples of a drop-down list box and a scrolling list box:

<form method="POST" action="/cgi-bin/handler.cgi">
<select name="myselect">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
<option value="5">Fifth</option>
</select>
<input type="submit" />
</form>

<form method="POST" action="/cgi-bin/handler.cgi">
<select name="myselect" size="4" multiple="multiple">
<option value="1">First</option>
<option value="2" selected="selected">Second</option>
<option value="3">Third</option>
<option value="4" selected="selected">Fourth</option>
<option value="5">Fifth</option>
</select>
<input type="submit" />
</form>

A Complete Example

Forms collect information and/or present it. When the submit button is clicked, information is sent somewhere. Once the information is sent somewhere, the form has done its job.

Here is an example form using all of the tags mentioned in this tutorial:

<form method="POST" 
      action="/cgi-bin/formupload/handler.cgi"
      enctype="multipart/form-data">
<input type="hidden" 
       name="something" 
       value="A line of content" />
<p>
What is your home page URL?<br>
<input type="text" name="url" size="17" maxlength="44" />
</p>
<p>
What is your password?<br>
<input type="password" name="P" size="9" maxlength="20" />
</p>
<p>
Select one or more colors that you like:<br>
<input type="checkbox" name="c_blue" value="yes">
<input type="checkbox" name="c_red" 
                   value="yes" checked="checked">
<input type="checkbox" name="c_pink" 
                   value="yes" checked="checked">
<input type="checkbox" name="c_yellow" value="yes">
</p>
<p>
What is your favorite color?<br>
<input type="radio" name="color" value="blue">
<input type="radio" name="color" 
                   value="red" checked="checked">
<input type="radio" name="color" value="pink">
</p>
<p>
Upload any type of file:<br>
<input type="file" name="upfile" />
</p>
<p>
<input type="button" 
       value="Give me a message"
       onclick="return alert('a message')" />
<!-- Note: onclick works only with JavaScript 
           enabled browsers. -->
</p>
<p>
Tell me why you are here!<br>
<textarea name="message" cols="20" rows="5"></textarea>
</p>
<p>
What is your most <b><u>un</u></b>favorite color:<br>
<select name="s_unfav">
<option value="green">Green</option>
<option value="red">Red</option>
<option value="blue" selected="selected">Blue</option>
<option value="yellow">Yellow</option>
<option value="pink">Pink</option>
</select>
</p>
<p>
Select one or more colors you do not like:<br>
<select name="s_like" size="4" multiple="multiple">
<option value="green">Green</option>
<option value="red" selected="selected">Red</option>
<option value="blue" selected="selected">Blue</option>
<option value="yellow">Yellow</option>
<option value="pink">Pink</option>
</select>
</p>
<p>
<input type="image"
       name="imageclick"
       src="myimage.gif"
       border="0" />
</p>
<p>
<input type="reset" value="Erase Everything!" />
</p>
<p>
<input type="submit" 
       name="1" 
       value="This is my first visit" />
</p>
<p>
<input type="submit" 
       name="2" 
       value="I've been here before" />
</p>
</form>

You now have information about all the different types of HTML web page form fields. Let's build something :)

Will Bontrager

Was this article helpful to you?
(anonymous form)

Support This Website

Some of our support is from people like you who see the value of all that's offered for FREE at this website.

"Yes, let me contribute."

Amount (USD):

Tap to Choose
Contribution
Method

All information in WillMaster Library articles is presented AS-IS.

We only suggest and recommend what we believe is of value. As remuneration for the time and research involved to provide quality links, we generally use affiliate links when we can. Whenever we link to something not our own, you should assume they are affiliate links or that we benefit in some way.

How Can We Help You? balloons
How Can We Help You?
bullet Custom Programming
bullet Ready-Made Software
bullet Technical Support
bullet Possibilities Newsletter
bullet Website "How-To" Info
bullet Useful Information List

© 1998-2001 William and Mari Bontrager
© 2001-2011 Bontrager Connection, LLC
© 2011-2024 Will Bontrager Software LLC