H5表单新增属性

本文详细介绍了HTML5新增的多种表单输入类型,包括email、url、number、range、date、search、color等,以及如何在实际中应用这些类型进行输入控制和验证。同时,文章还介绍了H5的表单元素如datalist、keygen、output以及新的表单属性如autocomplete、novalidate等。

H5新的Input类型

H5新增了多个新的表单输入类型。这些类型提供了更好的输入控制验证

这些类型包括:

  • email
  • url
  • number
  • range
  • Date picker(date, month, week, time, datetime, datetime-local)
  • search
  • color

浏览器支持(w3c上图片,不太准确)

image.png

注释: Opera对新的输入类型的支持最好。不过也已经可以在所有主流的浏览器中使用。即使不被支持,仍然可以显示为常规的文本域。


实际使用
  1. email
    提交时会校验内容是否是正确的邮箱格式

  2. url
    在提交表单时,会自动验证 url 域的值。

  3. number
    number 类型用于应该包含数值的输入域。还能设置输入数字的范围

      Points: <input type="number" name="points" min="1" max="10" />
    

    只可输入数字,输入其他字符被清空。 若超出范围,在提交表单时会给出相应提升

    属性描述
    maxnumber规定允许的最大值
    minnumber规定允许的最小值
    stepnumber规定合法的数字间隔(如果 step=“3”,则合法的数是 -3,0,3,6 等)
    valuenumber规定默认值
      <input type="number" name="points" min="0" max="10" step="3" value="6" />
    

    value=“6” 控制着 input的初始值,此次直接提交,不会有限制,若改动了input的值,提交时会限制数值
    内容为 : [0, 3, 6, 9] 中的一项

  4. range
    range 类型用于应该包含一定范围内数字值的输入域。
    range 类型显示为滑动条。
    还能够设定数字的限定:

        <input type="range" name="points" min="1" max="10" />
    

    效果:

    效果

  5. Date Pickers(日期选择器)
    HTML5 拥有多个可供选取日期和时间的新输入类型:

    • date - 选取日、月、年
    • month - 选取月、年
    • week - 选取周和年
    • time - 选取时间(小时和分钟)
    • datetime - 选取时间、日、月、年(UTC 时间)
    • datetime-local - 选取时间、日、月、年(本地时间)
  6. search
    search 类型用于搜索域,比如站点搜索或 Google 搜索。
    search 域显示为常规的文本域。


H5 新的表单元素

HTML5 拥有若干涉及表单的元素和属性。

  • datalist
  • keygen
  • output

浏览器支持性

Input typeIEFirefoxOperaChromeSafari
datalistNoNo9.5NoNo
keygenNoNo10.53.0No
outputNoNo9.5NoNo
  1. datalist 元素

datalist 元素规定输入域的选项列表。
列表是通过 datalist 内的 option 元素创建的。
如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist 的 id:

Webpage: <input type="url" list="url_list" name="link" />
<datalist id="url_list">
	<option label="W3School" value="http://www.w3school.com.cn" />
	<option label="Google" value="http://www.google.com" />
	<option label="Microsoft" value="http://www.microsoft.com" />
</datalist>

元素的list属性需要与元素的id对应


H5 表单属性

新的 form 属性:

  • autocomplete
    自动完成, 重新加载网页时,记录先前输入的值
  • novalidate
    属性规定在提交表单时不应该验证 form 或 input 域

新的 input 属性:

  • autocomplete
  • autofocus
    自动获取焦点
  • form
    设置input所属的from,该input可以不在内
  • form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
    重写(重新设置)form的相关属性
  • height 和 width
    只对input type=“image” 类型生效
      <input type="image" src="img_submit.gif" alt="Submit" width="48" height="48">
    
  • list
  • min, max 和 step
    min、max 和 step 属性用于为包含数字或日期的 input 类型规定限定(约束)。
  • multiple
    multiple 属性是一个 boolean 属性.
    multiple 属性规定 元素中可选择多个值。
    注意: multiple 属性适用于以下类型的 标签:email 和 file:
  • pattern (regexp)
  • placeholder
  • required
    规定必须在提交之前填写输入域(不能为空)。
HTML5 新增表单元素 output 用于定义表单元素的输出结果或计算结果,它必须属于某个表单或者通过属性指定某个表单,可显示不同类型表单元素的内容,还能与 input 元素建立关联,当 input 元素的值改变时会自动触发 JavaScript 事件,便于查询表单个元素的输入内容[^1]。 在使用方面,Edge 12 及更早 IE 版本的浏览器不支持 output 元素。以下是几种使用示例: ### 示例一:将 range 输入值实时显示在 output 中 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script> window.onload = function() { var input = document.getElementsByTagName('input')[0]; var output = document.getElementsByTagName('output')[0]; // 将 range 的值赋值给 output output.value = input.value; // 拖动滑动条,改变 output 值 input.onchange = function() { output.value = input.value; } } </script> </head> <body> <form method="post"> <p> <label>range: <input type="range" min="0" max="100" step="10" value="10" /></label> </p> <output></output> </form> </body> </html> ``` 此示例中,通过 JavaScript 获取 input 和 output 元素,页面加载时将 input 的初始值赋给 output,当 input 的值改变时,同步更新 output 的值[^2]。 ### 示例二:进行简单的计算并输出结果 ```html <form oninput="x.value=parseInt(a.value)+parseInt(b.value)"> 0 <input type="range" id="a" value="50" />100 + <input type="number" id="b" value="50" /> = <output name="x" for="a b"></output> </form> ``` 该示例中,当两个 input 元素的值发生变化时,会自动触发 oninput 事件,进行加法计算并将结果显示在 output 元素中[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值