zoukankan      html  css  js  c++  java
  • HTML(三):表单元素

    表单元素概述

    表单(Form),用于收集用户信息、提交用户请求等
    处理过程
            1、设计表单,并放入一些输入域
            2、网站访问者在自己的计算机上填写上述输入域,并提交到服务器端
            3、服务器处理数据并返回确认信息

    其执行过程可以用下图表示:

    语法:
         开始标记:必需
         内容:表单域元素
         结束标记:必需
    主要属性:
            1、accept:文件上传所使用的MIME类型列表。
            2、action:表单提交的地址,通常是包含服务方脚本的URL。如果为空则表示向当前页面提交。
            3、method:指出表单数据提交的方式。有两个可能值:
                       GET:将表单数据附加在请求中的URL上(默认方式)。
                       POST:将表单数据封装在发送到服务器的请求中,比get方式安全。

    作用:定义一个区域可以加入表单对象。

    表单元素的基本结构:

    注意:get和post方式的区别

    1、get是向服务器获取/查询数据的一种请求,post是向服务器提交数据的一种请求。
    2、服务器端获取值的方法
    get方式提交的数据,服务端使用request.QueryString获取变量的值。
    post方式提交的数据,服务端使用request.Form获取数据。
    3、安全性
    get方式的请求是把参数数据队列附加在提交表单的ACTION属性所指的URL后面,值和表单内各个字段一一对应,以?分割URL和传输数据,参数之间以&分割,由于可以在URL里面看到参数数据,所以get方式不安全。
    post方式是将表单内各个字段与其内容放置在HTML HEADER一起传送到ACTION属性所指的URL地址,在URL里面看不到参数数据,所以post方式比较安全。
    但是post方式执行效率要比get方式差一些。
    4、大小
    URL不存在参数上限的问题,HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
    理论上讲,POST是没有大小限制的,HTTP协议规范也没有进行大小限制,说“POST数据量存在80K/100K的大小限制”是不准确的,POST数据是没有限制的,起限制作用的是服务器的处理程序的处理能力。
    对于ASP程序,Request对象处理每个表单域时存在100K的数据长度限制。但如果使用Request.BinaryRead则没有这个限制。
    由这个延伸出去,对于IIS 6.0,微软出于安全考虑,加大了限制。我们还需要注意:
    1).IIS 6.0默认ASP POST数据量最大为200KB,每个表单域限制是100KB。
    2).IIS 6.0默认上传文件的最大大小是4MB。
    3).IIS 6.0默认最大请求头是16KB。
    IIS 6.0之前没有这些限制。[参2]
    总结:
    1、get方式的安全性较post方式要差一些,所以,如果包含一些重要的信息,简易使用post数据提交方式。
    2、在做查询统计的时候,使用get方式要更好一些;而在做数据的添加、修改或删除操作时,建议使用post方式提交数据。

    表单控件元素

    表单控件元素是包含在表单元素中具有可视化外观的HTML元素,用于访问者输入信息。
    表单元素包括:
                1、input:输入元素。
                2、textarea元素。
                3、select和option。
                4、其他元素。

    一、input元素

    input元素包括:
    文本域控件
    口令控件
    提交按钮和重置按钮
    复选框控件
    单选按钮
    图像按钮和普通按钮
    隐藏控件和文本选择控件

    根据对type属性的不同取值,可以建立多种显示风格的表单控件,如文本区域、口领域、复选框等。

    主要属性:
    type属性:指定表单控件的类型,可取值text、password、submit、reset、CheckBox
              radio、image、button、hidden、file。
    value属性:指定表单控件的数据。
    name属性:指定该控件的名称。

    1、文本域控件
    type="text"
    作用:用于创建一个单行文本输入字段
    值:由访问者自由输入的任何文本
    与input元素的其他属性配合:
        maxlength属性可以限制输入的字符数。
        readonly属性可以让文本控件只读。

    示例:

    例如:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>表单元素</title>
    </head>
    <body>
        <form method="POST">
            <div>
                名字:&nbsp;&nbsp;<input type="text" name="姓名" value="填写名字">
            </div>
        </form>
    
    </body>
    </html>

    结果:

     

    2、密码框
    type="password"
    作用;用于创建一个单行文本输入字段,并用*号屏蔽用户的输入。注意,当password输入的数据提交时并不以任何形式加密
    value值:由访问者自由输入的任何文本作为默认值。

    示例:

    例如:

    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:&nbsp;&nbsp;<input type="password">(至少包含6个字符)
    </div>
    <div>
               确认密码:<input type="password">(至少包含6个字符)
    </div>

    结果:

    3、复选框控件
    type="checkbox"
    作用:创建一个可以在选中和未选中之间切换的控件,当该表单提交给一个脚本进行处理时,每个被选取的复选框将返回一个与该复选框的名称相关联的值。
    value值:选中该控件的值,可以是任意文本。(提交给服务器的是value的值)
    与input元素的其它属性配合:
           要以选取状态显示复选框,使用checked属性。

    基本语法
    <INPUT type="checkbox" name="cb2" id="cb2" value="talk">

    建议:name和id的值一致
    示例:
    <body>
        <form name="form4" method="post" action="">
          爱好:
       <input type="checkbox" name="cb1" id="cb1" value="sports">
       <!--for指的是input里面的id属性,把“运动”和复选框关联起来,实现点击“运动”两字也可以选中-->
       <label for="cb1">运动</label>&nbsp;&nbsp;
       <input type="checkbox" name="cb2" id="cb2" value="talk" checked="checked">
       <label for="cb2">聊天</label>&nbsp;&nbsp;
       <input type="checkbox" name="cb3" id="cb3" value="play">
       <label for="cb3">玩游戏</label>
     </form>
    </body>

    例如:

    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;好:&nbsp;&nbsp;
                <input type="checkbox" name="sports" id="sports" checked="checked"/>
                <label for="sports"> 运动</label>
                <input type="checkbox" name="talk" id="talk" />
                <label for="talk"> 聊天</label>
                <input type="checkbox" name="play" id="play" />
                <label for="play"> 玩游戏</label>
    </div>

    结果:

    4、单选按钮
    type="radio"
    作用:创建一个单选按钮,用于互斥地选择某种属性值
    value值:文本,当提交form时,如果选中了此单选按钮,那么value就被发送到服务器
    name:按钮分组
    与input元素的其它属性配合:
    要以选取状态显示复选框,使用checked属性

    基本语法
    <input type="radio" value="男" checked="checked">
    注意:单选按钮的name属性的值必须相等,才能实现互斥的效果。

    示例:
    <body>
        <form name="form1" method="post" action="">
       <BR>
         性别:
            <input type="radio" name="gen" class="input" value="1" checked="checked">男&nbsp;&nbsp;
            <input type="radio" name="gen" class="input" value="2" >女&nbsp;&nbsp;
     </form>
    </body>

    例如:

    <div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;别:&nbsp;&nbsp;
                <input type="radio" name="sex" checked="checked"><input type="radio" name="sex"></div>

    结果:

    默认第一个被选中。

    5、提交按钮
    type="submit"
    作用:传送表单数据给服务器端脚本或其他程序处理。
    value值:按钮的标题文字。
    基本语法:
    <input type="submit" name="Submit" value="提交">

    例如:

    <div>
          <input type="submit" value="提交" />
    </div>

    结果:

    6、重置按钮
    type="reset"
    作用:清空表单的内容并把所有表单控件设置为最初的默认值
    value值:按钮的标题文字
    基本语法:
    <input type="reset" name="Reset" value="重置">

    注意:重置不是清空,而是把表单控件的值重置为value属性中指定的初始值。

    例如:

    <div>
                <input type="submit" value="提交" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="reset" value="重置" />
    </div>

    结果:

    7、图像按钮
    type="image"
    作用:创建一个图像按钮,用于实现用户自定义的按钮风格。
    src属性:指向按钮图片的位置。
    基本语法:
    <input name="image" type="image" src="B7.jpg" border="0">

    8、普通按钮
    type="button"
    作用:用于控制执行客户端脚本。
    value值:文本,显示在按钮上的文字。
    基本语法:
    <input name="verify" type="button" value="检查数据">

    作用:

    点击按钮,实现某种效果。

    例如:

    <div>
                <input type="submit" value="提交" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="reset" value="重置" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                <input type="button" value="按钮" />
    </div>

    结果:

    9、隐藏控件
    type="hidden"
    作用:用于在表单中包含不希望用户看见的信息。
    value值:文本,指派给控件的值,当用户提交表单时,该值与其他数据一起被发送。
    基本语法:
    <input type="hidden" name="hiddenField">

    10、文件选择控件
    type="file"
    作用:上传文件
    value值:文本,要上传的文件在本地的路径。
    基本语法
    <input type="file" name="file">

    例如:

    <div>
           <input type="file" />
    </div>

    效果:

    选择文件后的效果:

    二、textarea元素

    作用:建立一个多行的文本输入区域。
    基本语法:
    <TEXTAREA name="textarea" cols="40" rows="6">文本框中的内容</TEXTAREA>
    主要属性:
    cols属性:指定文本区域的列数。
    rows属性:指定文本区域的行数。
    Name属性:指定该控件的名字
    Readonly: 使文本区域不能编辑。
    注意:cols和rows只表示页面显示的字符个数,如果超过,则会自动显示相应的横向和纵向滚动条。

    例如:

    <div>
                注册条款:
                <textarea name="user" rows="3" cols="5">
    
                </textarea>
    </div>

    结果:

    三、select元素

    列表框元素,用于建立一个选择菜单/列表,效果类似于C#中的ComboBox,实现下拉框的效果
    语法:
    开始标记:必需
    内容:option元素
    结束标记:必需
    主要属性:
    size属性:指定列表的高度。
    multiple属性:指定数据项可以多选。
    name属性:指定该控件的名字。

    option元素
    菜单项/列表项元素,代表一个选择菜单/列表的选项
    语法:
    开始标记:必需
    内容:文本
    结束标记:可选
    主要属性:
    value属性:指定选中该项提交的值。
    selected属性:指定该项预先被选择。

    基本语法
    <select name="指定列表名称" size="行数">
    <option value="可选项的值" selected>text</option>
    <option value="可选项的值" >text</option>
    ......
    </select>
    说明:
    size:确定列表中可同时看到的行数
    selected:默认被选中的可选项
    text:表示页面上显示的内容
    value:提交给后台的值

    示例:

    <div>
                出生日期:
                年:&nbsp;&nbsp;<select >
                <option value="" selected="selected">[选择年]</option>
                <option value=0>2015</option>
                <option value=1>2016</option>
                <option value=2>2017</option>
                <option value=3>2018</option>
                </select>&nbsp;&nbsp;
                月:&nbsp;&nbsp;<select >
                <option value="" selected="selected">[选择月]</option>
                 <option value=0>一月</option>
                 <option value=1>二月</option>
                 <option value=2>三月</option>
                 <option value=3>四月</option>
                 <option value=4>五月</option>
                 <option value=5>六月</option>
                 <option value=6>七月</option>
                 <option value=7>八月</option>
                 <option value=8>九月</option>
                 <option value=9>十月</option>
                 <option value=10>十一月</option>
                 <option value=11>十二月</option>
                 </select>&nbsp;&nbsp;
                日:&nbsp;&nbsp;<select >
                 <option value="" selected="selected">[选择日]</option>
                 <option value=0>1</option>
                 <option value=1>2</option>
                 <option value=2>3</option>
                 <option value=3>4</option>
                 <option value=4>5</option>
                 <option value=5>6</option>
                 <option value=6>7</option>
                 <option value=7>8</option>
                 <option value=8>9</option>
                 <option value=9>10</option>
                 <option value=10>11</option>
                 <option value=11>12</option>
                 <option value=12>13</option>
                 <option value=13>14</option>
                 <option value=14>15</option>
                 <option value=15>16</option>
                 <option value=16>17</option>
                 <option value=17>18</option>
                 <option value=18>19</option>
                 <option value=19>20</option>
                 <option value=20>21</option>
                 <option value=21>22</option>
                 <option value=22>23</option>
                 <option value=23>24</option>
                 <option value=24>25</option>
                 <option value=25>26</option>
                 <option value=26>27</option>
                 <option value=27>28</option>
                 <option value=28>29</option>
                 <option value=29>30</option>
                 <option value=30>31</option>
                </select>
    </div>

    结果:

    四、Label元素

    语法:
        开始标记:必需
        内容:文本
        结束标记:必需

    如下图所示:

    主要属性:
        for:表示与该元素相联系的控件的ID值
    作用:
        将文本域控件联系在一起,将文本与控件联系在一起后,用户就可以单击这个文本,效果就同单击控件一样。

    示例:

    <div>
            <label for="userName">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;字:&nbsp;&nbsp;</label> 
            <input type="text" name="username" id="userName">
    </div>
    <div>
            <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;氏:&nbsp;&nbsp;<input type="text"></label>    
    </div>

    结果:

    这样,点击名字或姓氏的时候,其后面的文本框会自动获取焦点。

    五 、表单高级应用

    1、只读属性

    readonly:希望某个框内的内容只允许用户看,不能修改。

    例如:给名字文本框增加value值,value值只能看,不能修改

    <div>
            <label for="userName">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;字:&nbsp;&nbsp;</label> 
            <input type="text" name="username" id="userName" value="请输入姓名" readonly="readonly">
    </div>

     结果:

    2、禁用属性

    disable:因没达到使用的条件,限制用户使用。

    例如:

    <div>
             <label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;氏:&nbsp;&nbsp;
                    <input type="text" value="王" disabled="disabled">
             </label>    
    </div>

    结果:

    从图中可以看出:姓氏文本框是灰色的,表示禁用。 

  • 相关阅读:
    为什么做java开发的公司需要那么多程序员?
    一篇文章了解架构设计的本质
    深入理解 Java 多线程核心知识
    面试经验总结:注意这几点,面试通过率上涨30%
    程序员一般做到多少岁,那些70后的程序员都消失了?
    连阿里都在用它处理亿万级数据统计,论其对Java程序员的重要性!
    【源码】HashMap源码及线程非安全分析
    基于框架的RPC通信技术原理解析
    如何写好一份技术简历?
    彻底理解Netty,这一篇文章就够了
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/6387105.html
Copyright © 2011-2022 走看看