方便布局

表单内容可以放在表单标签之外,这样做的好处是方便设计时不用考虑一定要将表单元素放在指定的form标签之下,只要指定元素适用于哪个表单即可,如下:

 <form id="test" action="test.php" method="get">
<input form="test" type="text" name="name"/>
</form>
<input form="test" type="submit" value="确定"/>

可指定提交按钮的目标及方法

在HTML5之前,一个表单只能填写一个action及一个method,在HTML5中每个提交按钮都可以指定自己的action及method,如下:

 <!-- HTML5以前的表单写法 -->
<form action="test.php" method="get">
<input type="text" name="name"/>
<input type="submit" value="确定"/>
</form>
<!-- HTML5的表单写法 -->
<form>
<input type="text" name="name"/>
<input type="submit" value="确定POST" formaction="test1.php" formmethod="post"/>
<input type="submit" value="确定GET" formaction="test2.php" formmethod="get"/>
</form>

enctype和formenctype

enctype属性规定在发送到服务器之前应该如何对表单数据进行编码。

  • application/x-www-form-urlencoded:表单数据被编码为名称/值对。这是默认的编码方式(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。
  • multipart/form-data:不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。
  • text/plain:空格转换为 "+" 加号,但不对特殊字符编码。

同上,enctype也可以针对每个提交按钮进行指定,使用formenctype即可。

target和formtarget

类似于<a>标签的target属性,form标签的target属性控制提交数据之后,action指向的地址的打开方式,其可填写的值于<a>标签的值意义和写法完全一致,默认为_self。

同上,每个提交按钮也可以配置自己的target,使用formtarget即可。

autofocus

使用该属性,可以在页面打开时将焦点自动设定到设置了该属性的组件上。

<input type="text" name="name" autofocus/>

required

指示输入字段的值是必需的,如果不填值就提交会出现提示并且也不会有提交的动作发出。

<input type="text" name="name" required/>

label

在我们使用单选框或复选框时,一般这个后面都会跟上一段文字,但是我们点击这段文字时却是无效的,label可以用来将文字和指定的单选框、复选框或者任意的控件进行绑定,我们可以点击文字就如同点击到对应的控件一般:

 <!-- 直接包含写法 -->
<form>
<label>
<input type="checkbox" value="value">
请选择这个复选框
</label>
</form>
<!-- 通过for进行指定 -->
<form>
<input type="checkbox" value="value" id="cb">
<label for="cb">请选择这个复选框</label>
</form>

标签的control属性

标签的control属性指定了标签包含或指向的控制对象,可以通过获取该属性来拿到对应的控件,如果标签包含了多个控件,则该属性表示第一个控件。

 <script>
function setDefault() {
var label = document.getElementById("label");
var input = label.control;
input.value = "123456";
}
</script>
<form>
<label id="label">
<input type="text">
</label>
<input type="button" value="点击设定默认值" onclick="setDefault()">
</form>

placeholder

输入框指定了该属性后,会作为一个提示文字在输入框没有输入时显示。

<input type="text" placeholder="请输入手机号">

带提示及可输入的文本框

在HTML5中可以通过datdlist来定义一个带有下拉提示的输入框,如下:

 <form>
<input type="text" list="dl">
<datalist id="dl">
<option value="HTML5">HTML5学习</option>
<option value="Android">Android学习</option>
<option value="IOS">IOS学习</option>
</datalist>
</form>

除了可以输入预订的信息外,还可以输入任意的信息。

autocomplete

在使用了autocomplete标记的输入框进行过一次提交之后,下一次再次输入会出现上次输入的文本,可以实现快速补齐的功能。

 <form action="test.php" method="get" autocomplete="on">
<input type="text">
<input type="submit">
</form>

pattern属性

pattern属性可以设定为一个正则表达式,为输入框设定了pattern属性之后,在提交时会对输入的文本进行检查,当发现不能匹配时会进行提示:

 <form action="test.php" method="get">
<input type="text" pattern="[A-Z]{3}" name="part">
<input type="submit">
</form>

上面的示例,只有在输入3个大写字母之后才能进行正确提交。

input元素的新增种类

在HTML5中,对input元素的种类进行了增加,用url类型来作为说明,使用了url类型,则在提交时,会验证填写的内容是否为url地址,实际上是方便了开发者,免去了常用的验证代码的编写。

新增种类如下:http://www.w3school.com.cn/html5/html_5_form_input_types.asp

有个不好的地方是,每个浏览器对新类型的外观设计都是不一样的,所以为了追求统一性,在大网站上,还是需要使用风格统一的类型,比如日期选择器等,个人感觉在编写快速小应用时可以使用到这些新增的类型。

HTML5学习笔记(四):H5中表单新增元素及改良的更多相关文章

  1. Flutter学习笔记(22)--单个子元素的布局Widget(Container、Padding、Center、Align、FittedBox、Offstage、LimitedBox、OverflowBox、SizedBox)

    如需转载,请注明出处:Flutter学习笔记(22)--单个子元素的布局Widget(Container.Padding.Center.Align.FittedBox.Offstage.Limited ...

  2. HTML5学习笔记<五>: HTML表单和PHP环境搭建

    HTML表单 1. 表单用于不同类型的用户输入 2. 常用的表单标签: 标签 说明 <form> 表单 <input> 输入域 <textarea> 文本域 < ...

  3. HTML5学习笔记<四>: 列表, 块和布局

    HTML列表 列表标签 标签 描述 <ol> 定义有序列表. <ul> 定义无序列表. <li> 定义列表项. <dl> 定义定义列表. <dt& ...

  4. HTML5学习笔记四 HTML文本格式化

    HTML 格式化标签 HTML 使用标签<b> 与<i> 对输出的文本进行格式, 如:粗体 or 斜体 这些HTML标签被称为格式化标签 通常标签 <strong> ...

  5. HTML5学习笔记四:html5结构

    一.大纲:大纲即文档中各内容区块的结构编排 1. 显示编排内容区块:使用section等元素创建文档结构,每个内容区块使用标题(h1~h6,hgroup); 2. 隐式编排内容区块:根据页面所书写的各 ...

  6. [html5] 学习笔记-表单新增的元素与属性(续)

    本节主要讲解表单新增元素的controls属性.placeholder属性.List属性.Autocomplete属性.Pattern属性.SelectionDirection属性.Indetermi ...

  7. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

  8. Html5学习笔记1 元素 标签 属性

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. HTML5学习笔记之表格标签

    HTML5学习笔记之表格标签 其他HTML5相关文章 HTML5学习笔记之HTML5基本介绍 HTML5学习笔记之基础标签 HTML5学习笔记之表格标签 HTML5学习笔记之表单标签 HTML5学习笔 ...

随机推荐

  1. RHEL7 添加网卡并设置多个IP地址

    首先在虚拟机管理界面中给该虚拟机添加一块虚拟网卡,VirtualBox虚拟机中要shutdown才能添加. [root@rhel7 ~]# nmcli device show | grep -i de ...

  2. Inno Setup入门(五)——添加readme文件

    这个实现起来很简单,就是在[files]段中的某个预先作为readme的文件后面添加标志位isreadme: [setup] ;全局设置,本段必须 AppName=Test AppVerName=TE ...

  3. Window查看系统激活状态

    Window小技巧 #快捷键 Win+G --录像 psr --问题记录器 #查看系统激活信息 WIN键+R调出运行框,在运行框中cmd winver 回车后就能看到当前系统的版本 slmgr.vbs ...

  4. Java中的String pool

    public String intern()返回字符串对象的规范化表示形式. 一个初始时为空的字符串池,它由类 String 私有地维护.当调用 intern 方法时,如果池已经包含一个等于此 Str ...

  5. Struts1与Struts2的那些事

    一.概述 Struts1以ActionServlet作为核心控制器,由ActionServlet负责拦截用户的全部请求.Struts1框架有3个重要组成部分:Action.ActionForm和Act ...

  6. MyChatRoom——C#自制聊天室

    一个用C#编写的基于Socket的Windows版聊天室,包括服务端和客户端.当服务端启动服务后,客户端可以连接到服务端,给服务端发送数据,服务端可以接收数据:服务端可以给客户端发送数据,客户端接收: ...

  7. 【tp5】索引数组转成关联数组 ( $a=[],转换成 $a['aa'=>2,'bb'=>'3c'] )

    概念: 索引数组 ==== >>>$arr = []; 关联数组 ====>>> $arr = [ 'orange'=>1,'apple'=>'good ...

  8. ios中封装九宫格的使用(二级导航)

    效果图 一般用于导航功能 第一步下载http://pan.baidu.com/share/link?shareid=1824940819&uk=923776187 第二步 把下图内容放在你的x ...

  9. dx11的一些数据结构

    功能是什么创建一个设备(device)来代表显示适配器(display adapter)并且创建一个交换链(swap chain)用于渲染 设备device在dx11里是用来干什么的从ID3DX11D ...

  10. 工程部署从tomcat6.0迁移到jboss6.0错误总结

    2014-11-08 内容存档在evernote,笔记名"工程部署从tomcat6.0迁移到jboss6.0错误总结"