3_H5增强表单

H5增强的表单

form元素及属性

form元素

  1. 用来定义一个表单,是建立表单的基础元素,(就类似定义表格的table)
  2. 表单的其他元素包含在form元素中,其主要子元素有:input/button/select......

form元素的属性

  1. action:指定表单的发送地址(服务器地址)
  2. method:表单数据发送至服务器的方法,常用的有两种:get/post

get和post提交的区别

  1. get方法提交,数据会附在网址之后主动提交给服务器
  2. post方法提交,数据不会附在网址后,会将数据打包发送给服务器,等候服务器来读取数据进行处理

input元素及其属性

input元素

  1. 用来设置表单中的内容项,比如输入内容的文本框,按钮等
  2. 不仅可以布置在表单中,也可以在表单之外的元素使用

input元素的属性

1.  `type属性`:指定输入内容的类型,默认为text:单行文本框

        默认为text 
        password:密码状态输入
        submit:提交按钮,点击将数据发送至服务器
        reset:重置按钮
        button:普通按钮
        imge:图片式提交按钮
        hidden;隐藏字段
            该内容不会显示页面上
            一般为网页设计者设置的变量数据,提交时,隐藏内容会提交到服务器
            关于hidden暂时只了解这么多,以后用到的时候再详细说
        email:表示要输入一个电子邮箱
        url:表示要输入一个网址
        tel:表示输入的内容是一个电话号码(不验证,键盘是数字)
            这是HTML5新增的
            他会对输入内容进行验证,在之前需要编写大段的JS代码来进行这项工作
            浏览器版本比较低的话有可能不支持,不同的浏览器提示的效果可能有差异
        number:
            这是HTML5新增的
            可以配合input的max/min/step/value规定允许输入的最大值/最小值/步长/默认值
            浏览器版本比较低的话有可能不支持,不同的浏览器提示的效果可能有差异
        range(活动条)
            这是HTML5新增的;与number类型类似,也是表示一定范围的数值输入,但是以一个活动条的状态显示
            可以配合input的max/min/step/value规定的最大值/最小值/步长/默认值
            浏览器版本比较低的话有可能不支持,不同的浏览器提示的效果可能有差异
        时间类
            这是HTML5新增的;
            包括datetime/datetime-local/date/month/week/time
            浏览器版本比较低的话有可能不支持,不同的浏览器支持程度不同
        color
            这是HTML5新增的;
            可以建立一个颜色的选择输入框
            浏览器版本比较低的话有可能不支持,不同的浏览器支持程度不同
        seacrch
            这是HTML5新增的;
            用于建立一个搜索框,用来供用户输入搜素的关键词
            浏览器版本比较低的话有可能不支持,不同的浏览器支持程度不同
        file
            用来创建一个文件选取的输入框
            可通过accept属性规定选取文件的类型,比如图片/视频
            multipe属性可以设定一次允许选择多个文件
        autofocus属性:自动获得焦点
        accesskey属性:指定快捷键windows中,指定快捷键后,按Alt+“快捷键”,便会获得焦点
        tabindex属性:指定按Tab键时,项目间的移动顺序
        autocomplet属性: HTML5新增属性属性值为on/off,定义是否开启浏览器自动记忆功能,默认开启on
  1. name属性:输入内容的识别名称,传递参数时候的参数名称

  2. value属性:默认值

  3. maxlength:输入的最大字数

  4. readonly属性:只读属性,设置内容不可变更,提交时会以前发送至服务器

  5. disabled属性:设置为不可用(不可操作)

  6. placeholder属性:设置默认值,当文本框获得焦点时被清空,对text/url/tel/email//password/search有效

  7. autocomplet属性:属性值为on/off,定义是否开启浏览器自动记忆功能

  8. autofocus属性:自动获得焦点

  9. checkbox/复选框

    用来创建一个复选框(可以多项选择)

    通过checked属性可讲某个选项设为默认的选取状态,再次单击取消选取

  10. radio/单选框

    用来创建一个单选框(可以多项选择)

    通过checked属性可讲某个选项设为默认的选取状态,再次单击取消选取

    必须将同一组单选项设置一个相同的name属性值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="http://www.hao360.cn/" method="get"><br>
        <input type="hidden" value="测试" name="ceshi"><br>
        用户名:<input type="text" name="user" name="user" value="请输入用户名" maxlength="11" autocomplet="off"><br>
         密码: <input type="password" name="ps" name="password"><br>
        地址:<input type="text" readonly="readonly" name="address" value="xx街道"><br>
        提示:<input type="text" disabled="disabled" value="提示"><br>
        邮箱:<input type="email" name="email" required><br>
        网址:<input type="url" name="url" accesskey="n"><br>
        电话;<input typ="tel" name="tel"><br> 
        数量:<input type="number" value="2" min="2" max="6" step="2" name="num">
        进度:<input type="range" min="0" max="100" value="10"name="rang">
        时间:<input type="time"><br>
        日期:<input type="date"><br>
        周:<input type="week"><br>
        月:<input type="month"><br>
        本地时间:<input type="datetime-local"><br>
        UTC时间:<input type="datetime"><br>
        颜色选择:<input type="color" name="color"><br>
        搜索框:<input type="search" placeholder="提示内容" autofocus ><br>
        文件:<input type="file" accept="image/png" multiple="multiple">
        <h3> 复选框 </h3>
        <input type="checkbox" name="dx" value="1">aa
        <input type="checkbox" name="dx" value="2" checked="checked">bb
        <input type="checkbox" name="dx" value="3">cc
        <input type="checkbox" name="dx" value="4">dd
        <hr>
        <h3> 单选框 </h3>
        <input type="radio" name="rd" value="1">aa<br>
        <input type="radio" name="rd" value="2" checked="checked">bb<br>
        <input type="radio" name="rd" value="3">cc<br>
        <input type="submit" value="确定">
        <input type="reset" value="清除">
        <input type="button" value="普通按钮">
        <input type="image" src="sc.png"> 
    </form>
</body>
</html>
input.png

select元素

  1. 用来建立一个下拉菜单选项列表
  2. 不仅可以在表单中使用,还可以在其他块元素和内联元素中使用
  3. select只是定义一个下拉菜单列表,其具体列表项要通过option元素建立
  4. option元素可以用来建立一个选项,即下拉列表的一个菜单项
  5. optgroup元素用来对option元素进行组合分组
  6. size用来定义列表中显示的列表项
  7. multiple属性用来定义是否可以多选
  8. 可以添加disabled属性和autofocus属性

datalist元素

  1. HTML5新增元素,用来建立一个选项列表
  2. datalist元素的内容不会直接显示在网页上,只是会在用户输入时作为候选项
  3. 通常与input元素配合使用(不太方便动态改变,)

HTML5新增表单属性

form属性:将表单外的内容与表单进行关联

novalidate属性:设置数据提交时不进行验证

enctype属性:仅作了解规定在发送到服务器之前应该如何对表单数据进行编码。通常情况下我们使用默认值即可

accept-charset属性:仅作了解accept-charset 属性规定服务器处理表单数据所接受的字符集。 accept-charset 属性允许您指定一系列字符集,服务器必须支持这些字符集,从而得以正确解释表单中的数据。通常情况下我们使用默认值即可 此属性的默认值是 "unknown",表示表单的字符集与包含表单的文档的字符集相同。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
     <form action="" id="xz">
        <select name="selelct" multiple="multiple">
            <optgroup>
                <option value="1">选我</option>
                <option value="2">选她</option>
                <option value="3">不选</option>
            </optgroup>
            <optgroup >
                <option value="1">选我</option>
                <option value="2">选她</option>
                <option value="3">不选</option>
            </optgroup>
        </select>
        <input type="submit">
    </form>
    <hr>
    <form>
        <input type="text" name="text" list="mydatalist">
        <datalist id="mydatalist">
            <option value="选我"></option>
            <option value="选她"></option>
            <option value="不选"></option>
        </datalist>
        <input type="submit">
    </form> 
    <form novalidate="novalidate">
        用户名:<input type="text" name="user" form="xz">
        邮箱:<input type="email" name="email">
        <input type="submit">
    </form>
</body>
</html>
select_datalist.png

lable元素

  1. 用来为 input 元素定义标注(标记),建立一个与之相关联的标签
  2. for属性,让标签与指定的input元素建立关联
  3. 将input元素包含在label标签中
  4. 可以通过accesskey建立快捷键

lable属性

  1. 在option元素中可以设定比标签内容更优先的选项
  2. optgroup的分组名称
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <table border="2" align="center" style="background:yellow;padding=10px">
        <tr>
            <td>
                <h3>你喜欢谁?</h3>
                <input type="checkbox" name="ck" value="我" id="a">
                <label for="a">我</label>
                <input type="checkbox" name="ck" value="你" id="b"><label for="b">你</label>
                <label><input type="checkbox" name="ck" value="他" id="c">他</label>
                <label>
                    <input type="checkbox" name="ck" value="木木" id="d">木木
                </label>
                <label>
                    <input type="checkbox" name="ck" value="屎蛋" id="e">屎蛋
                </label>
                <hr>
                <h3>你的性别?</h3>
                <input type="radio" name="rd" value="男" id="1">
                <label for="1">
                    男
                </label><br>
                <label>
                    <input type="radio" name="rd" value="女" id="2">女<br>
                </label>
                <label>
                    <input type="radio" name="rd" value="不告诉你" id="3">不告诉你<br>
                </label>
                
            </td>
            <td>
                <h3>你喜欢谁?</h3>
                <input type="checkbox" name="ck" value="我" id="a">我
                <input type="checkbox" name="ck" value="你" id="b">你
                <input type="checkbox" name="ck" value="他" id="c">他
                <input type="checkbox" name="ck" value="木木" id="d">木木
                <input type="checkbox" name="ck" value="屎蛋" id="e">屎蛋
                <hr>
                <h3>你的性别?</h3>
                <input type="radio" name="rd" value="男" id="1">男<br>
                <input type="radio" name="rd" value="女" id="2">女<br>
                <input type="radio" name="rd" value="不告诉你" id="3">不告诉你<br>
            </td>
        </tr>
    </table>

    <hr>
    <form action="">
        <h3>查看相关</h3>
        <input type="submit" value="搜索">
        <select>
            <optgroup label="人">
                <option value="你好">你好</option>
                <option value="我好">我好</option>
            </optgroup>
            <optgroup label="动物">
                <option value="猪好" label="动">猪好</option>
                <option value="狗好">狗好</option>
            </optgroup>
        </select>
    </form>
    
</body>
</html>
label.gif

textarea元素

  1. 用来建立多行输入文本框
  2. 元素标签中的内容将一文本框默认值的形式呈现
  3. 不仅可以用在表单中,也可以在其他块元素或内联元素中

textarea元素的属性:

  1. name/disabled/readonly/form/reauired/autofocus/placeholder属性
  2. rows属性:设置多行文本的行数(高度)
  3. cols属性:设置多行文本的每行显示的字数(宽度)

button元素

  1. 用来建立一个按钮从功能上来说,与input元素建立的按钮相同
  2. button元素是双标签,其内部可以配置图片与文字,进行更复杂的样式设计
  3. 不仅可以在表单中使用,还可以在其他块元素和内联元素中使用

button元素的属性

  1. type属性:可以设置三个值 submit/reset/button与input元素设置的按钮含义相同
  2. name/vlue/disable属性:与input的用法相同
  3. autofocus属性:设置按钮自动获得焦点。
  4. form属性:设定按钮隶属于哪一个或多个表单
  5. formmethod属性:设定表单的提交方式,将覆盖原本的提交方式
  6. formnovalidate属性:设定表单将会覆盖原本的novalidate属性
  7. fomaction属性:指定表单数据发送对象,将覆盖原来的action属性设定
  8. formenctype属性;指定表单的数据发送类型,将覆盖原本的enctype属性设定
  9. formtarget属性:将覆盖原本的target属性设定
    重要事项:如果在表单中使用 button 元素,不同的浏览器会提交不同的值。Internet Explorer 将提交 button元素开始标签与结束标签之间的文本,而其他浏览器将提交 value 属性的内容。最好就是在表单中使用 input 元素来创建按钮。其他地方使用button创建按钮
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="" id="myform">
        用户名:<input type="text" size="30" name="user"><br><br>
        意见:<textarea rows="5" cols="30" placeholder="请输入您的意见" name="yj"></textarea><br>
        <button type="submit" style="background:red;border-radius:10px"><img src="sc.png" width="12" >提交</button>
        <button type="reset">重置</button>
        <input type="submit" value="提交到地址1" formaction="http://www.baidu.com">
        <input type="reset">
    </form>
</body>
</html>

output元素:数据的输出

  1. output元素是HTML5新增的元素,用来设置不同数据的输出
  2. output元素的输出内容是由代码控制的

output元素的属性:

  1. name属性:定义对象的唯一名称。(表单提交时使用)
  2. form属性:定义所属的一个或多个表单。
  3. for属性:定义输出域相关的一个或多个元素。

oninput表单事件:当用户对元素数据的输入时触发

parseInt() 是一个javascript函数,它可以解析一个字符串,并返回一个整数。

<!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>Document</title>
</head>
<body>
  <form action="" id="myform" oninput="num.value=parseInt(num1.value)+parseInt(num2.value)">
    <input type="number" id="num1" />
    +
    <input type="number" id="num2" />
    =
    <output name="num" for="num1 num2">

    </output>
  </form>
</body>
</html>
output.gif

progress元素

  1. 是HTML5中新增的元素,用来建立一个进度条
  2. 通常与JavaScript 一同使用,来显示任务的进度。
  3. 使用时注意浏览器的支持情况:Internet Explorer 9 以及更早的版本不支持

progress元素的属性:

  1. max属性:规定当前进度的最大值。
  2. value属性设定进度条当前默认显示值
  3. form属性:规定进度条所属的一个或多个表单。

meter元素

  1. 是HTML5中新增的元素,用来建立一个度量条,用来表示度量衡的评定
  2. 通常与JavaScript 一同使用,来显示任务的进度。

meter元素的属性:

  1. value属性设定进度条当前默认显示值
  2. max属性:规定范围的最大值,默认值为1.
  3. min属性:规定范围的最小值,默认值为0.
  4. low属性:规定被视作低的标准。
  5. high属性:规定被视作高标准。
  6. form属性:规定所属的一个或多个表单。
<!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>Document</title>
</head>
<body>
  <form action="" id="myform">
    <progress max="10" value="3"></progress><br />
    <meter max="100" min="0"  value="60" high="80" low="30"></meter>
  </form>
</body>
</html>
progress.png

fieldset元素:可将表单内的相关元素分组。

  1. 当一组表单元素放到fieldset标签内时,浏览器会以特殊方式来显示它们,通常会有一个边框。
  2. 没有必需的或唯一的属性。form/disabled属性可用。

legend元素:为 fieldset 元素定义标题

<!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>Document</title>
</head>
<body>
  <form>
    <fieldset>
      <legend>
        用户注册
      </legend>
      账号:<input type="text" name="user" /><br>
      密码:<input type="password" name="password" /><br>
      <input type="submit" />
    </fieldset>
  </form>
</body>
</html>
fieldset.png

keygen元素

  1. 是HTML5中新增的元素,用来建立一个密钥生成器
  2. 当提交表单时,私钥存储在本地,公钥发送到服务器。主要作用是提供一种用户验证身份的方法
  3. 使用时注意不同浏览器支持程度不同;目前Internet Explorer 和 Safari暂不支持

keygen元素元素的属性:

  1. name/form/autofocus/disabled
  2. challenge属性:将 keygen 的值设置为在提交时询问。
  3. keytype属性:定义密钥类型,如设置为rsa(一种密码的算法),则生成 RSA 密钥。
<body>
  <form action="" id="myform">
    账号:<input type="text" name="account" />
    加密:<keygen name="mykey">
    <input type="submit" />
  </form>
</body>

keygen.png

pattern属性

  1. 设定输入类型的正则表达式

details元素

  1. 用于描述文档或文档某个部分的细节。
  2. 通常与summary元素配合使用,可以为 details 定义标题。标题是可见的,用户点击标题时,会显示出 details中的内容。

details元素的属性:

  1. open属性:规定在 HTML 页面上 details 是可见的。
<!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>Document</title>
</head>
<body>
  <details open="open">
    <summary>
      点击率
    </summary>
    <p>
      该文章目前的点击率:6000
    </p>
    <ul>
      <li>
        8000以上:很火<meter max="10000" min="0" low="3000" high="8000" optimum="" value="9000"></meter>
      </li>
      <li>
        3000-8000以上:一般<meter max="10000" min="0" low="3000" high="8000" optimum="" value="4000"></meter>
      </li>
      <li>
        3000以下:人气不高啊<meter max="10000" min="0" low="3000" high="8000" optimum="" value="1000"></meter>
      </li>
    </ul>
  </details>
</body>
</html>
details.gif
<!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>Document</title>
  <style type="text/css">
    form{background: pink;width: 400px;padding: 10px;margin-top: 150px;margin-left: 200px;}
    button{background: #7370d8; padding: 5px;border-radius: 5px}
    button:hover{padding: 7px;background: #2f4f4f;border-radius: 5px}
    input{padding: 5px;background: #f8f8f8}
    input:focus{background: #ffc0cb;padding: 5px}
  </style>
</head>
<body>
  <form action="">
    <fieldset>
      <legend>
        注册用户
      </legend>
      <p>
        <label for="user">
          账号:
          </label>
        <input type="text" name="user" id="user" placeholder="账号" required="required" />
      </p>
      <p>
        <label>
          密码:<input type="password" name="password" id="password" placeholder="密码" required="" />
        </label>
      </p>
      <p>
        <label>
          电话号码:<input type="tel" name="phone" id="phone" placeholder="电话号码" required="" />
        </label>
      </p>
      <p>
        <label>
          电子邮箱:<input type="email" name="email" id="email" placeholder="电子邮箱" required="" />
        </label>
      </p>
      <button>注册</button>
    </fieldset>
  </form>
</body>
</html>
end.gif
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,629评论 1 92
  • HTML表单 在HTML中,表单是 ... 之间元素的集合,它们允许访问者输入文本、选择选项、操作对象等等,然后将...
    兰山小亭阅读 3,364评论 2 14
  • 你我的状态是,两个人静默无言,转身却和陌生人相谈甚欢。
    Lemon_O白画弥阅读 345评论 0 0
  • 《悖论》 作者:魏城 风?没有一丝 雨?只有汗水 酷暑中 我们的希望 被烈日晒焦 只剩下唯一的渴望: 冬天,快来!...
    魏城阅读 174评论 0 0