html5系列:form 2.0 新结构
以往的一个form表单,结构比较死板,所有的form元素都必须处在<form>和</form>之间才有效,这会造成一些麻烦,比如说:像bootstrap这种使用<div>来控制布局的框架,<form>放在哪都很尴尬;另外,目前的web 2.0,UI比较丰富,为了布局或其它的原因,表单元素之间可能充斥着大量非表单相关的元素,而form 1.0又规定表单元素必须在闭合的<form>标签以内,那<form>跟</form>就相隔得非常远了,也是相当别扭的。
而form 2.0并不要求form元素处在<form>和</form>之间,只需要为其指定属于哪个表单(甚至是“哪几个表单”)即可,由此便衍生出以下的写法:
<form id="test-form" method="post" action="save.php"></form>
First name:
<input type="text" name="firstname" form="test-form" />
<br />
Last name:
<input type="text" name="lastname" form="test-form" />
另外,每个form元素可以隶属于多个form表单,换句话说,多个form表单可以共享同一个form元素。用form属性指定多个form表单时用空格分隔,如下所示:
<form id="test-form1" method="post" action="save.php"></form>
<form id="test-form2" method="post" action="save.php"></form>
<input type="text" name="firstname" form="test-form1 test-form2" />
form override attributes(表单重写属性)
网上的资料都把这一部分放到form 2.0 attribute来写,但我认为form override attributes对form 2.0的结构是有非常重大的影响的,因此放到这一块来叙述。
表单重写属性有:
formaction - 重写表单的 action 属性
formenctype - 重写表单的 enctype 属性
formmethod - 重写表单的 method 属性
formnovalidate - 重写表单的 novalidate 属性
formtarget - 重写表单的 target 属性
以一个例子来进行说明:
<form action="demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" /> //普通的提交按钮
<br />
<!--用这个按钮来提交的时候,由于`formaction`重写了表单的`action`属性,因此该表单将会被提交到`demo_admin.asp`而非`demo_form.asp`-->
<input type="submit" formaction="demo_admin.asp" value="Submit as admin" />
<br />
<!--用这个按钮来提交的时候,由于`formnovalidate`重写了表单的`novalidate`属性,因此该表单在提交时将不会进行验证-->
<input type="submit" formnovalidate="true" value="Submit without validation" />
<br />
</form>
由此,可以利用form override attributes,设置多个提交按钮来控制以不同的方式提交表单。
html5系列:form 2.0 新结构的更多相关文章
- ASP.NET MVC深入浅出系列(持续更新)  ORM系列之Entity FrameWork详解(持续更新)  第十六节:语法总结(3)(C#6.0和C#7.0新语法)  第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字  各种通讯连接方式   设计模式篇  第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
		ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ... 
- HTML5新结构标签和移动端页面布局
		--------------------HTML5新结构标签--------------------1.h5新增的主要语义化标签如下: 1.header 页面头部.页眉 2.nav 页面导航 3.ar ... 
- Cocos2d-x 3.0新引擎文件夹结构
		Cocos2d-x 3.0新引擎文件夹结构 2014年4月29日 Cocos2d-x 3.0学习 作为一个Cocos2d-x的菜鸟,我倒是挺愿意关注不同版本号之间的差别,Cocos2d-x 3.0自 ... 
- html5新结构标签
		html5新结构标签 <header> 定义 section 或 page 的页眉,也就是定义头部的标签. <footer> 定义 section 或 page 的页脚. & ... 
- 前端笔记之HTML5&CSS3(上)新特性&音频视频&本地存储&自定义属性
		一.HTML5简介 HTML 5 的第一份正式草案已于2008年1月22日公布.HTML5 仍处于完善之中.然而,大部分现代浏览器已经具备了某些 HTML5 支持. 2014年10月29日,万维网联盟 ... 
- 大熊君学习html5系列之------XHR2(XMLHttpRequest Level 2)
		一,开篇分析 Hi,大家好!大熊君又和大家见面了,(*^__^*) 嘻嘻……,这系列文章主要是学习Html5相关的知识点,以学习API知识点为入口,由浅入深的引入实例, 让大家一步一步的体会" ... 
- html5 新增元素以及css3新特性
		HTML5 1.HTML5 新元素 HTML5提供了新的元素来创建更好的页面结构: 标签 描述 <article> 定义页面独立的内容区域. <aside> 定义页面的侧边栏内 ... 
- Django 2.0 新特性 抢先看!
		一.Python兼容性 Django 2.0支持Python3.4.3.5和3.6.Django官方强烈推荐每个系列的最新版本. 最重要的是Django 2.0不再支持Python2! Django ... 
- LINQ学习之旅 C#3.0新特性(一)
		一:C#3.0新语言的特性 自动属性(Auto-Implemented Properties) 隐含类型局部变量(Local Variable Type Inference) 匿名类型(Anonymo ... 
随机推荐
- 系统整理qt笔记3
			qtcreator中不能输入中文: https://blog.csdn.net/qq_15725099/article/details/97305507 main.cpp #include " ... 
- appium报错Message: Cannot set the element to ‘XXXX’. Did you interact with the correct element?
			appium+python+android 在定位到模块输入内容的时候遇到了一个问题 send_keys报错 appium报错Message: Cannot set the element to 'X ... 
- C++_Leecode1 两数之和
			一.题目介绍 1.题目描述 ->给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值的那两个整数,并返回它们的数组下标. ->你可以假设每种输入只会对应一个答 ... 
- jmeter 24个常用函数
			Jmeter_24个常用函数 JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__ ... 
- 矩池云上安装ikatago及远程链接教程
			https://github.com/kinfkong/ikatago-resources/tree/master/dockerfiles 从作者的库中可以看到,该程序支持cuda9.2.cuda10 ... 
- Java 多线程中的死锁概述
			死锁 死锁的定义 发生在并发中 当两个线程(或更多)线程(或线程)相互持有对方所需要的资源,又不主动释放,导致所有线程都无法继续执行,是程序陷入无尽的阻塞,这就是死锁. 如果多个线程之间的依赖关系是环 ... 
- laravel  登录+中间件拦截+红柚小说网小说采集+图片本地化
			.......................登录界面 <!doctype html> <html lang="en"> <head> < ... 
- tensorflow源码解析之common_runtime-graph_optimizer
			目录 核心概念 graph_optimizer function optimization_registry 1. 核心概念 本篇主要讲图的优化迭代器.我们在构建原始图的时候,专注于达到目的,但不会去 ... 
- yum源出现 AppStream‘ 缓存失败,忽略这个 repo。同步仓库 ‘base‘ 缓存失败,忽略这个 repo 的问题解决办法
			今天安装Wget时出现如下错误 到 /etc/yum.repos.d/目录下编辑CentOS-Base.repo ,更改为如下内容. vim CentOS-Base.repo # CentOS-Bas ... 
- vue2.x结合echarts2实现显示具体省份热力图
			最近研究了一下VUE2.X结合ehcarts实现热力图,先看下最终: 效果话不多说,直接上代码: 1 <!DOCTYPE html> 2 <html> 3 <head&g ... 
