HTML5项目笔记2:离线系统表单设计

在这个离线系统中,表单无疑是构成这个离线系统的视图部分,作为最前端,与客户的操作最密切相关的一块,所以我们有必要先了解一下HTML5的Forms API,它有如下特性:

表单仍然使用Form元素作为容器,我们可以在其中设置基本的提交性质;

用户或者开发人员提交页面的时候,表单仍用于向服务器端发送表单中控件的值;

沿用之前的表单控件及其使用方法,并不断发展和增加新的控件和功能;

可以用脚本操作表单控件;

HTML5包含了大量的新的API和元素类型,如下:

新的输入型控件:


类型


用途


input type=datetime


时间和日期输入框


input type=datetime-local


本地的时间和日期输入框


input type=date


日期输入框


input type=month


年月输入框


input type=time


时间输入框


input type=week


星期输入框


input type=number


数值输入框


input type=tel


电话号码输入框


input type=email


电子邮件地址文本框


input type=url


URL地址文本框


input type=search


用于搜索文本框


input type=range


特定范围的数值选择器,以进度条方式显示


input type=color


颜色选择器(这个不使用)

下面这些元素很多我们会在离线填报表单里面使用到,可以复制拿到Chrome浏览器里面试试看:

日期格式文本框:

<p>

<label for="date">date类型:</label>

<input type="date" id="date"><span>请在新版Chrome中查看</span>

</p>

时间格式文本框:

<p>

<label for="time">time类型:</label>

<input type="time" id="time"><span>请在新版Chrome中查看</span>

</p>

月份格式文本框:

<p>

<label for="month">month类型:</label>

<input type="month" id="month"><span>请在新版Chrome中查看</span>

</p>

周格式文本框:

<p>

<label for="week">week类型:</label>

<input type="week" id="week"><span>请在新版Chrome中查看</span>

</p>

电话号码输入文本框:

<p>

<label for="tel">tel类型:</label>

<input type="tel " id="week"><span>请在新版Chrome中查看</span>

</p>

数值类型输入文本框:

value指的是初始时的默认值,min为最小值,max为最大值,step为增量和减量均为某个值,

或者某个值的倍数,如我们下面是3,所以它只是3,或者3的倍数:

<p>

<label for="number">number类型:</label>

<input type="number" name="number" id="number"  step="3" value="3" min="0" max="4"  >

<span>请在新版Chrome中查看</span>

</p>

滑动条Range:

范围:value:指的是初始时的默认值,min为最小值,max为最大值,step为增量和减量均为1,这边加了个

函数,用以实时显示range的进度条:

<p>

<label for="range">range类型:</label>

<input type="range" id="range" min="1" max="100" step="1" value="36" onchange="changeRange(this.value)"/>

<span id=”ShowRange” ></span>

<span>请在新版Opera或Chrome或Safari中查看</span>

</p>

function changeRange(rangeVal) {

$("#ShowRange").html(rangeVal+"%");

}

Placeholder:默认输入框描述文字:

Placeholder:(placeholder指的是默认的文字,当用户没有输入值的时候,输入型控件可以通过placeholder进行描述性说明或提示,当焦点聚焦或者输入文本的时候,placeholder会消失):

<input type="text" placeholder="对文本框的描述…" />

Autocomplete : 自动完成

autocomplete="on",作用:保存输入值以备将来使用,autocomplete="off",不保存,

autofocus="autofocus":默认载入聚焦

电子邮件文本框Email:

<p>

<label for="email">email类型:</label>

<input type="email" name="email" id="email" placeholder="请输入正确mail地址" />

<span>请在新版Chrome中查看</span>

</p>

Email文本框要求必须输入的是正确的邮箱地址,否则的会有错误提示

URL文本框:

<p>

<label for="url">url类型:</label>

<input type="url" id="url" autocomplete="off" placeholder="请输入正确URL地址" autofocus="autofocus">

<span>请在新版的Chrome中查看效果</span>

</p>

URL文本框要求必须输入的是邮箱地址,否则的会有错误提示:

Search搜索框:

带有搜索框样式的input控件,

<p>

<label for="search">search类型:</label>

<input type="search" results="n" id="search">

<span>请在新版Chrome中查看</span>

</p>

THE CONSTRAINT VALIDATION API(客户端验证API):

HTML5使用ValidityState对象来反馈表单的验证状态

var checkResult = input.validity;

if(checkResult.valid) console.debug(“验证通过”);

else console.debug(“验证失败”);

验证的通过或者失败取决于HTML5 引进的八种验证约束条件,如果全部通过,则返回True,只要有一个未通过,则返回False。

1、 valueMissing

目的:确保表单控件中的值有填写

用法:在表单控件中将required属性设为true

示例:<input type="text" required="true" />

2、 typeMismatch

目的:确保控件内的值与控件的类型相同(如number,email,url)

用法:指定表单页面的type特征值

示例:<input type="email" />

3、 patternMismatch

目的:根据表单控件上设置的格式规则验证输入是否为有效格式。

用法:在表单控件上设置pattern特性,井赋予适当的匹配规则,title是你要反馈给用户的自定义错误信息。

示例:<input type=”text” title = "请填写数值,可以包含1-4位的小数", placeholder = "请填写数值...", pattern = "^[0-9]+(.[0-9]{1,4})?$"/>

4、 tooLong

目的:避免输入值包含过多字符。

用法:在表单控件上设置maxLength特性。

示例:<input type="text" maxLength="30">

5、 rangeUnderflow

6、 rangeOverflow

目的:限制数值型控件的最小值和最大值。

用法:为表单控件设置min/max特性,并赋予允许的最小值/最大值。

示例:<input type="range" name="ageCheck" min="18" max="80" />

 

7、 stepMismatch

目的:确保输入值符合min、max及step即设置。

用法:为表单控件设置step特性,指定数值的增量。

示例:<input type="range" min="0" max="100" step="5">

8、 customError

目的:开发人员的自定义错误信息,处理应用代码明确设置及计算产生的错误。

用法:调用setCustomValidity(message)将表单控件置于customError状态。

示例:

<input type="text" oninput="checkNumuric(this)" />

Script:

function checkNumuric(input) {

var checkValue = input.value;

var reg = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;

if (!reg.test(checkValue)) input.setCustomValidity(‘您需要输入正确的网址!‘);

else input.setCustomValidity(‘‘);

}

Cancel VALIDATION(取消验证操作):

1、 form元素的 novalidate 属性,关闭表单验证,可以不同区域做这个设置,来对某些提交的数据验证,某些不验证。

2、 input 元素的 formnovalidate属性,可以对该元素启动或停止验证

3、 sumbmit 元素的 formnovalidate属性,可以对整个表单启动或停止验证,相当与form 元素的 novalidate属性

时间: 2024-10-10 15:42:56

HTML5项目笔记2:离线系统表单设计的相关文章

HTML5学习笔记(二)——表单1

表单一直是网页必不可少的一部分,一直以来,表单的作用被无限扩展,发展出了诸多新奇的用法,老版的HTML只支持很少的一部分常用表单,许多的新表单都需要借助CSS与JavaScript语言来进行构建,现在HTML5来了,她带来了新的表单,这些强大的表单项,可以省去一大块复杂的JavaScript代码,很值得去学习. 而且在新的表单里面,不再像以前每个表单都必须位于<form></form>之内,只要在<form></form>内定义一个id,然后在网页任何位置都

asp.net 微信企业号办公系统-表单设计-新建表单(属性设置)

点击表单设计工具栏上的 新建表单 按钮会弹出新表单属性设置框: 表单名称:新表单表名称. 数据连接:表单对应的数据库连接(此连接在 系统管理-->数据库连接 中维护). 数据表:表单对应的数据库表. 主键:数据库表的主键(主键只能是自增的int型,或uniqueidentifier(guid)类型). 标题字段:业务表中的哪个字段数据来作为待办任务的标题. 程序库分类:表单的分类,此分类在 数据字典 中维护. 任务标题:是否自动生成标题,如果是自动生成则会以 流程名称(发起者姓名) 的形式自动生

asp.net 微信企业号办公系统-表单设计-保存与发布

表单的过程中可以随时保存,以便下次继续设计. 表单设计完成后即可点击发布按钮,发布表单,发布表单后即可在流程设计时选定该表单.

HTML 自学笔记(HTML框架+表单设计)

HTML框架 什么是框架:将浏览器划分成不同部分,每一部分加载不同的网页,用以实现在同一浏览器窗口中加载多个页面的效果. <frameset> 划分框架标记. 语法格式:<frameset>...</frameset> 属性: cols 使用"像素值"和"%"分割左右窗口,"*"表示剩余部分.若使用"*,*,*"则表示框架平均分成3个.若使用"*,*"则表示框架平均分成2

asp.net 微信企业号办公系统-表单设计-HTML编辑器

本系统目前采用的html编辑器为ueditor编辑器(和表单设计器的编辑器相同). 绑定字段:与数据表的某个字段对应. 宽度:编辑器的宽度. 高度:编辑器的高度. 运行效果如下:

asp.net 微信企业号办公系统-表单设计-文本框

点击表单设计器工具栏上的文本框按钮,会弹出文本框属性对话框: 绑定字段:该文本框与表单属性设置中选择的表的某个字段绑定(该文本框中的值将会保存到该字段中). 默认值:该文本框的初始化值. 宽度:文本框的宽度,如:200px,60%格式. 最大字符数:文本框可输入的最大字符数,对应 maxlength 属性. 输入类型:明文或者密码类型,对应input 的type='text'或type='password'. 值类型:输入的文本类型,表单提交时会验证输入的类型是否符合规定. 事件:可以给文本框绑

HTML5项目笔记4:使用Audio API设计绚丽的HTML5音乐播放器

HTML5 有两个很炫的元素,就是Audio和 Video,可以用他们在页面上创建音频播放器和视频播放器,制作一些效果很不错的应用. 无论是视屏还是音频,都是一个容器文件,包含了一些音频轨道,视频轨道和一些元数据,这些是和你的视频或者音频控件绑定到一块的,这样才形成了一个完整的播放组件. 浏览器支持情况: 浏览器 支持情况 编解码器 Chrome 3.0 Theora . Vorbis .Ogg H.264 . AAC .MPEG4 FireFox 3.5 Theora . Vorbis .Og

asp.net 微信企业号办公系统-表单设计-子表

子表即明细表 从表:与主表对应在子表. 从表主键:从表的主键. 主表字段:主表中与从来关联的字段,一般为主表的主键. 与主表关联字段:从表中与主表关联的字段. 选择之后即可在下面从表字段列表中设置每个字段是否显示,即编辑模式.

asp.net 微信企业号办公系统-表单设计-标签(label)

LABEL标签即在表单中添加一个文本标签: 字号:标签显示文字的大小. 颜色:标签显示文字的颜色. 样式:以粗体和斜体显示.