详解form表单的工作过程

Y2J
发布: 2017-05-20 10:27:31
原创
7018 人浏览过

 一、表单

  1.表单的作用

  HTML 表单用于接收不同类型的用户输入,用户提交表单时向服务器传输数据,从而实现用户与Web服务器的交互。

  2.表单的工作机制


    

  3.表单定义(

标签)

   HTML表单是一个包含表单元素的区域, 表单使用

标签创建。表单能够包含 
1     <form action="reg.ashx" method="post">
2     <!--表单元素在这里-->
3     </form>
登录后复制

  3.表单属性

   action:规定当提交表单时,向何处发送表单数据。action取值为:第一,一个URL(绝对URL/相对URL),一般指向服务器端一个程序,程序接收到表单提交过来的数据(即表单元素值)作相应处理。比如,当用户提交这个表单时,服务器将执行网址"www.cnblogs.com/"上的名为"reg.ashx"的一般处理程序。第二,使用mailto协议的URL地址,这样会将表单内容以电子邮件的形式发送出去。这种情况比较少见的,因为它要求访问者的计算机上安装和正确设置好了邮件发送程序。第三,空值,如果action为空或不写,表示提交给当前页面。

  method:该属性定义浏览器将表单中的数据提交给服务器处理程序的方式。关于method的取值,最常用的是get和post。第一,使用get方式提交表单数据,Web浏览器会将各表单字段元素及其数据按照URL参数格式附在标签的action属性所指定的URL地址后面发送给Web服务器;由于URL的长度限制,使用get方式传送的数据量一般限制在1KB以下。第二,使用post方式,浏览器会将表单数据作为HTTP请求体的一部分发送给服务器。一般来说,使用post方式传送的数据量要比get方式传递的数据量大;根据HTML标准,如果处理表单的服务器程序不会改变服务器上存储的数据,则应采用get方式(比如查询),如果表单处理的结果会引起服务器上存储的数据的变化,则应该采用post方式(比如增删改操作)。第三,其它方式(Head、PUT、DELETE、TRACE 或 OPTIONS等)。其实,最初HTTP标准对各种操作都规定了相应的method,但后来很多都没有被遵守,大部分情况只是使用get或post就OK。关于更多的各种method方式的区别,由于我目前对HTTP协议了解的不多,不敢妄下结论。很多园友的讨论也好像不是很深入,大家争论比较多。

  target:该属性规定在何处显示action属性中指定的URL所返回的结果。取值有_blank(在新窗口中打开)、_self(在相同的框架中打开,默认值)、_parent(在父框架中打开)、_top(在整个窗口中打开)和framename(在指定的框架中打开)。

  title:设置网站访问者的鼠标放在表单上的任意位置停留时,浏览器用小浮标显示的文本。

    enctype:规定在发送到服务器之前应该如何对表单数据进行编码。取值:默认值为 "application/x-www-form-urlencoded",在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值);“multipart/form-data”:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。

  name:表单的名称。注意和id属性的区别:name属性是和服务器通信时使用的名称;而id属性是浏览器端使用的名称,该属性主要是为了方便客户端编程,而在css和javascript中使用的。

二、表单元素

  1.单行文本框(input 的type 属性的默认值就是"text")

<input type = “text” name=“名称”/>
登录后复制

  以下是单行文本框的主要属性:

    size:指定文本框的宽度,以字符个数为单位;在大多数浏览器中,文本框的缺省宽度是20个字符。

    value:指定文本框的默认值,是在浏览器第一次显示表单或者用户单击按钮之后在文本框中显示的值。

    maxlength:指定用户输入的最大字符长度。

    readonly:只读属性,当设置readonly属性后,文本框可以获得焦点,但用户不能改变文本框中的value。

    disabled:禁用,当文本框被禁用时,不能获得焦点,当然,用户也不能改变文本框的值。并且在提交表单时,浏览器不会将该文本框的值发送给服务器。

  2.密码框 

<input type=“password” name=“名称”/>
登录后复制

  3.单选按钮

  使用方式:使用name相同的一组单选按钮,不同radio设定不同的value值,这样通过取指定name的值就可以知道谁被选中了,不用单独的判断。单选按钮的元素值由value属性显式设置,表单提交时,选中项的value和name被打包发送,不显式设置value。

    <input type=“radio” name=“gender” value=“male”/> 
    <input type=“radio”  name=“gender” value=“female”/>
登录后复制

  4.复选框

  使用复选按钮组,即name相同的一组复选按钮,复选按钮表单元素的元素值由value属性显式设置,表达提交时,所有选中项的value和name被打包发送

不显式设置value。复选框的checked属性表示是否被选中,或者(推荐)checked、readonly等这种一个可选值的属性都可以省略属性值。

     <input type =“checkbox” name=“language” value=“Java”/> 
     <input type =“checkbox”  name=“language” value=“C”/>
     <input type =“checkbox” name=“language” value=“C#”/>
登录后复制

  5.隐藏域

  隐藏域通常用于向服务器提交不需要显示给用户的信息。

<input type=“hidden” name=“隐藏域”/>
登录后复制

  6.文件上传

  使用file,则form的enctype必须设置为multipart/form-data,method属性为POST。

<input name="uploadedFile" id="uploadedFile" type="file" size="60" accept="text/*"/>
登录后复制

  7.下拉框标记创建一个列表框,

 1     <select name="country" size="10">
 2         <optgroup label="Africa">
 3             <option value="gam">Gambia</option>
 4             <option value="mad">Madagascar</option>
 5             <option value="nam">Namibia</option>
 6         </optgroup>
 7         <optgroup label="Europe">
 8             <option value="fra">France</option>
 9             <option value="rus">Russia</option>
10             <option value="uk">UK</option>
11         </optgroup>
12         <optgroup label="North America">
13             <option value="can">Canada</option>
14             <option value="mex">Mexico</option>
15             <option value="usa">USA</option>
16         </optgroup>
17     </select>
登录后复制

  8.多行文本

  多行文本,cols=“50”、rows=“15”属性表示行数和列数,不指定则浏览器采取默认显示。

1    <textarea name=“textareaContent” rows=“ 20“ cols=“50” >
2  多行文本框的初始显示内容 
3    </textarea>
登录后复制

  9.标签

   在前可以写普通的文本来修饰,但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id,;”,然后按下alt+u(了解)。accesskey=“u“,label的另一个属性。注意:要为被修饰的控件设置一个唯一的id。我觉得标签对这两个标签是非常有用的。

1   <input type="radio" name="sex" id="male" value="0" checked="checked" /><label for="male">男</lable>
2   <input type="radio" name="sex" id="fmale" value="1" /><label for="fmale">女</label>
3   <input type="radio" name="sex" id="secret" value="2" /><label for="secret">保密</label>
登录后复制

   10.

标签

  fieldset标签将控件划分一个区域,看起来更规整。

1 <fieldset>
2    <legend>爱好</legend>
3     <input type="checkbox" value="篮球" />
4     <input type="checkbox" value="爬山" />
5     <input type="checkbox" value="阅读" />
6 </fieldset>
登录后复制

  11.提交按钮

  当用户单击的提交按钮时,表单数据会提交给标签的action属性所指定的服务器处理程序。中文IE下默认按钮文本为“提交查询”,可以设置value属性修改按钮的显示文本。 

    <input type="submit" value="提交"/>
登录后复制

  12.重置按钮

  当用户单击按钮时,表单中的值被重置为初始值。在用户提交表单时,重置按钮的name和value不会提交给服务器。

<input type=“reset” value=“重置按钮"/>
登录后复制

  13.普通按钮

  普通按钮通常用于单击执行一段脚本代码。

    <input type="button" value="普通按钮"/>
登录后复制

  14.图像按钮

  图像按钮的src属性指定图像源文件,它没有value属性。图像按钮可代替,而现在也可以通过css直接将按钮的外观设置为一幅图片

  <input type="image" src="bg.jpg" />
登录后复制

三、表单示例

  该示例是使用表单实现的一个简单的注册页面,使用表格布局。

  1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4     <title>注册页面</title>
  5     <style type="text/css">
  6         table
  7         {
  8             width: 450px;
  9             border: 1px solid red;
 10             background-color: #FFCB29;
 11             border-collapse: collapse;
 12         }
 13         td
 14         {
 15             width: 200;
 16             height: 40px;
 17             border: 1px solid black;
 18         }
 19         span
 20         {
 21             background-color: red;
 22         }
 23     </style>
 24 </head>
 25 <body style="background-color: blue; background-image: url(../图片/bear.jpg); background-repeat: repeat;">
 26     <form name="registerform" id="form1" action="" method="post">
 27     <table align="center" cellspacing="0" cellpadding="0">
 28         <tr>
 29             <td>
 30  用户名:  31             </td>
 32             <td>
 33                 <input type="text" />
 34             </td>
 35         </tr>
 36         <tr>
 37             <td>
 38  密码:  39             </td>
 40             <td>
 41                 <input type="password" />
 42             </td>
 43         </tr>
 44         <tr>
 45             <td>
 46  确认密码:  47             </td>
 48             <td>
 49                 <input type="password" />
 50             </td>
 51         </tr>
 52         <tr>
 53             <td>
 54  请选择市:  55             </td>
 56             <td>
 57                 <select>
 58                     <optgroup label="中国">
 59                         <option>甘肃省</option>
 60                         <option>河南省</option>
 61                         <option>上海市</option>
 62                     </optgroup>
 63                     <optgroup label="American">
 64                         <option>California</option>
 65                         <option>Chicago</option>
 66                         <option>New York</option>
 67                     </optgroup>
 68                 </select>
 69             </td>
 70         </tr>
 71         <tr>
 72             <td>
 73  请选择性别:  74             </td>
 75             <td>
 76                 <input type="radio" name="sex" id="male" value="0" checked="checked" /><label for="male">男</lable>
 77                     <input type="radio" name="sex" id="fmale" value="1" /><label for="fmale">女</label>
 78                     <input type="radio" name="sex" id="secret" value="2" /><label for="secret">保密</label>
 79             </td>
 80         </tr>
 81         <tr>
 82             <td>
 83  请选择职业:  84             </td>
 85             <td>
 86                 <input type="radio" id="student" name="profession" /><label for="student">学生</label>
 87                 <input type="radio" id="teacher" name="profession" /><label for="teacher">教师</label>
 88                 <input type="radio" id="others" name="profession" /><label for="others">其他</label>
 89             </td>
 90         </tr>
 91         <tr>
 92             <td>
 93  请选择爱好:  94             </td>
 95             <td>
 96                 <fieldset>
 97                     <legend>你的爱好</legend>
 98                     <input type="checkbox" name="hobby" id="basketboll" checked="checked" /><label for="basketboll">打篮球</label>
 99                     <input type="checkbox" name="hobby" id="run" /><label for="run">跑步</label>
100                     <input type="checkbox" name="hobby" id="read" /><label for="read">阅读</label>
101                     <input type="checkbox" name="hobby" id="surfing" /><label for="surfing">上网</label>
102                 </fieldset>
103             </td>
104         </tr>
105         <tr>
106             <td>
107  备注: 108             </td>
109             <td>
110                 <textarea cols="30">这里是备注内容</textarea>
111             </td>
112         </tr>
113         <tr>
114             <td>
115                  
116             </td>
117             <td>
118                 <input type="submit" value="提交" />
119                 <input type="reset" value="重置" />
120             </td>
121         </tr>
122     </table>
123     </form>
124 </body>
125 </html>
登录后复制

【相关推荐】

1. HTML免费视频教程

2. 详解form标签中的method属性

3. 带你掌握HTML中table和form表单

4. 详解html中form表单的参数和属性

5. 带你掌握HTML中table和form表单

以上是详解form表单的工作过程的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门推荐
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!