rest/forms-examples: Difference between revisions
Jump to navigation
Jump to search
Google
Line 56: | Line 56: | ||
::<table>...Web..Images..Groups..News..Froogle...</table> | ::<table>...Web..Images..Groups..News..Froogle...</table> | ||
::<table> | ::<table> | ||
:::<input type=hidden name=hl value=en><input maxLength=256 size=55 name=q value=""><br> | :::<input type=hidden name=hl value=en> | ||
:::<input maxLength=256 size=55 name=q value=""><br> | |||
:::<input type=submit value="Google Search" name=btnG> | :::<input type=submit value="Google Search" name=btnG> | ||
:::<input type=submit value="I'm Feeling Lucky" name=btnI> | :::<input type=submit value="I'm Feeling Lucky" name=btnI> |
Revision as of 22:49, 6 October 2005
Forms Examples
As the first stage of the microformats process, this page collects examples of best/common practice for annotating HTML form to describe input data.
The Problem
The vast majority of websites use some kind of forms to receive input -- far more than provide any kind of web services. Currently, people who want to call into those websites need to manually screen-scape and generate urlencoded, or (worse) MIME multipart.
The purpose of this exploration is to determine if there is any consistent design patterns used by forms and/or semantic tagging that would allow automatic extraction of the information needed to generate HTML input.
Participants
Real-World Examples
Orbitz
- <form method="get" id="productNavMenu" action="">
- <div id="productNav" class="productNav">
- <div class="singleProduct">
- <ul>
- <li><label for="airChoice"><input type="radio" name="product" id="airChoice" class="chk" botid="air" href="" target="" dp="" checked="checked" />Flight<span class="onlyFlag"> only</span></label></li>
- <li><label for="htlChoice"><input type="radio" name="product" id="htlChoice" class="chk" botid="htl" href="" target="" dp="" />Hotel<span class="onlyFlag"> only</span></label></li>
- <li><label for="carChoice"><input type="radio" name="product" id="carChoice" class="chk" botid="car" href="" target="" dp="" />Car<span class="onlyFlag"> only</span></label></li>
- </ul>
- </div>
- <div class="packageProduct">
- <ul>
- <li><label for="aphChoice"><input type="radio" name="product" id="aphChoice" class="chk" botid="aph" href="" target="" dp="" />Flight + Hotel</label></li>
- <li><label for="hpcChoice"><input type="radio" name="product" id="hpcChoice" class="chk" botid="hpc" href="" target="" dp="" />Hotel + Car</label></li>
- </ul>
- </div>
- <div class="promoBox">
- <p><span></span>
- <a href="/App/PackageSavingsInfo?popupsDisabled=false" onClick="return popUpGen('/App/PackageSavingsInfo?popupsDisabled=false','400','200');" > Book together and <span class="saveLabel">save</span> <span class="savings">$169</span></a>
- <span class="note">on average</span></p>
- </div>
- </div>
- </form>
Canonical HTML 4 example
- <FORM action="http://somesite.com/prog/adduser" method="post">
- <LABEL for="firstname">First name: </LABEL>
- <INPUT type="text" id="firstname">
- <INPUT type="text" id="firstname">
- <LABEL for="lastname">Last name: </LABEL>
- <INPUT type="text" id="lastname">
- <INPUT type="text" id="lastname">
- <LABEL for="email">email: </LABEL>
- <INPUT type="text" id="email">
- <INPUT type="radio" name="sex" value="Male"> Male
- <INPUT type="radio" name="sex" value="Female"> Female
- <INPUT type="submit" value="Send"> <INPUT type="reset">
- <INPUT type="text" id="email">
- </FORM>
- <form action=/search name=f>
- <script>...</script>
- ...Web..Images..Groups..News..Froogle...
- <input type=hidden name=hl value=en>
- <input maxLength=256 size=55 name=q value="">
- <input type=submit value="Google Search" name=btnG>
- <input type=submit value="I'm Feeling Lucky" name=btnI>
- </form>
Expedia
- <form name=FltWiz method=post action="MoreInfo.asp" style="margin-top:14;margin-bottom:0">
- <table ...>
- ...
- <td>
- Departing from:
- <input type=text name=Fcity1 class=buntext1 maxlength=100 value="">
- Departing from:
- ...
-
- <select class=size11 name=Fday1 onChange="SetDay(1)">
- <option value=1>1
- </select>
- <select class=size11 name=Fday1 onChange="SetDay(1)">
- ...
-
- <select class=size11 name=Ftime1>
- <option value=420>AM
- <option selected value=720 selected>Noon
- <option value=1020>PM
- </select>
- <select class=size11 name=Ftime1>
- ...
-
- <INPUT TYPE=HIDDEN NAME=opts VALUE="spec">
- <INPUT TYPE=HIDDEN NAME=Fns VALUE="1">
- <input type=hidden name="RM1CHILD1AGE" value="">
- <input type=hidden name="RM1CHILD2AGE" value="">
- <input type=hidden name="RM1CHILD3AGE" value="">
- <input type=hidden name="RM1CHILD4AGE" value="">:::
- <input type=hidden name="RM1CHILD5AGE" value="">
- <input type=hidden name="RM1CHILD6AGE" value="">
-
- <input type=Submit name=Search value="Search" class=bungreenGoBtn>
- ...
- </table>
- </form>
Existing Practices
(first guess)
- Everybody seems to use tables, not labels
- Common tags are:
- label: for
- form: name, method, action
- input: type, name, maxlength, value [botid, href, target, dp]
- select: name, onChange
- option: value
Proposal
- Best design pattern so far:
- <li><label for=...>
- <input type=... name=... value=... ...>
- </label></li>
- Why so much type=hidden?