知识点

相关文章

更多

最近更新

更多

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

2019-03-28 18:50|来源: 网络

在这个离线系统中,表单无疑是构成这个离线系统的视图部分,作为最前端,与客户的操作最密切相关的一块,所以我们有必要先了解一下HTML5Forms 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浏览器里面试试看:

日期格式文本框:


 

请在新版Chrome中查看



时间格式文本框:


 

请在新版Chrome中查看



月份格式文本框:


请在新版Chrome中查看



周格式文本框:


请在新版Chrome中查看



电话号码输入文本框:


请在新版Chrome中查看



数值类型输入文本框:

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

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


请在新版Chrome中查看



滑动条Range

 

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

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



 

请在新版OperaChromeSafari中查看

 


 


function changeRange(rangeVal) {

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

}

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

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

 

Autocomplete : 自动完成

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

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

电子邮件文本框Email

 



 

 

 

请在新版Chrome中查看



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

URL文本框:

 



 

 

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

 

请在新版的Chrome中查看效果

 



 

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

Search搜索框:

 

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



 

 

请在新版Chrome中查看

 



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

目的:确保控件内的值与控件的类型相同(如numberemailurl

用法:指定表单页面的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特性。

示例:

5、 rangeUnderflow

6、 rangeOverflow

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

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

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

7、 stepMismatch

目的:确保输入值符合minmaxstep即设置。

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

示例:

8、 customError

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

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

示例:

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属性

我们的离线系统中有用到上面的一部分表单元素,如我们的用户信管理表单:

<div class="UserInfo" >

    <div class="UserInfoSingle">

        <span class="UserInfoH" >姓名:</span>

        <span class="UserInfoC" >

              <input id="UserName" name="UserName" type="text" placeholder="Your UserName" required="required" />

        </span>

    </div>


    <div class="UserInfoSingle">

        <span class="UserInfoH" >性别:</span>

        <span class="UserInfoC" >

          <select id="UserSex" name="UserSex" style="width:65px; " >

              <option value="0" >男</option>

              <option value="1" >女</option>

           </select>

        </span>

    </div>


    <div class="UserInfoSingle">

        <span class="UserInfoH" >入职时间:</span>

        <span class="UserInfoC" >

               <input class="calinput" id="ReportDutyTime" name="ReportDutyTime" readonly="readonly"

                       onclick="return showCalendar('ReportDutyTime', 'y-mm-dd');"

                       type="text" placeholder="Report Duty Time..." required="required" />

       </span>

    </div>


    <div class="UserInfoSingle">

        <span class="UserInfoH" >工号:</span>

        <span class="UserInfoC" >

             <input type="text" id="JobNumber" name="JobNumber" placeholder="Your Job Number..."

                   required="required" pattern="^[0-9]{7}"    title="工号必须为7位数字..." />

       </span>

     </div>


     <div class="UserInfoSingle">

        <span class="UserInfoH" >部门:</span>

        <span class="UserInfoC" >

            <input type="text" id="DepartmentNumber" name="DepartmentNumber"

               placeholder="Your Department Number..." required="required" />

       </span>

    </div>          

    <input type="submit" value="保存" style="float:right;margin:10px 65px 0 0" />

</div>


 

页面效果如下:

本文源码:CRX_Mail_Form


转自:http://www.cnblogs.com/wzh2010/archive/2012/05/20/2509785.html

相关问答

更多
  • 保定世纪宏光计算机学校曲阳常年招生办事处‎: 河北省保定市曲阳县滨河南路 ‎ 保定学院数学与计算机楼‎ :河北省保定市市辖区砺才路‎ 保定市恒达计算机学校‎ :河北省保定市市辖区 ‎ 保定世纪宏光计算机学校定兴办事处‎ :河北省保定市定兴县通兴西路 ‎ 保定世纪宏光计算机学校易县办事处:‎ 河北省保定市易县靖远北大街‎ 保定方远电脑学校 (向阳南大街)‎ :河北省保定市市辖区向阳南大街‎ - 0312-7916888‎ 保定方远电脑学校报名咨询处广源通讯 (中山中路)‎:河北省保定市定州市中山中路‎ - 0 ...
  • 涉及到流程引擎的东西了吧 可以看下云海oa系统的流程表单设计
  • vf表单设计实例[2023-09-03]

    这个表单想实现什么功能的呀,如果只是想执行表单,可以在这个表单上点右键“执行表单”,就可以了。 也可以点主菜单栏的红“!”号。
  • 您好, 我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历。相较于你将来可能得到的巨大收获,这真的只是一个小小的投资。 2.研究面试官 当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址。但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知。 再举个正面的例子,我在面试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。 你说我会推荐哪个? 面试官也是人,也会有人性的弱点和特点。Dale Carnegie曾说过, ...
  • 你确定你下载了可以访问HTML5 / JavaScript的正确版本的IDE吗? 链接到正确版本的图像 我作为测试下载了C ++,并且HTML5 / JavaScript项目选项不可用,但我将大部分插件安装在HTML5类别中,并且在重新加载IDE时出现了JavaScript类别中的大部分插件以及项目类型。 我会建议卸载,然后下载正确版本的IDE或安装HTML5和JS类别插件 。 Are you sure you downloaded the correct edition of the IDE that h ...
  • 它已被解决......问题是“atspiadaptor.cpp,第899行”所以要解决它只是删除qt-at-spi包,这个bug在qt-at-spi包中(参见https:// bug。 launchpad.net/ubuntu/+source/qtcreator/+bug/959722 )。 sudo apt-get删除qt-at-spi :d It has been resolved... the problem is "atspiadaptor.cpp, line 899" so to resolve ...
  • 也许尝试localstorage任何IPad应该支持它。 http://diveintohtml5.ep.io/storage.html 用户不应该丢失数据,除非他们清除浏览器缓存或您作为程序员覆盖它。 它由域存储。 Maybe try localstorage any IPad should support it. http://diveintohtml5.ep.io/storage.html The user should never lose the data unless they clear br ...
  • 如果你不改变网页的内容 ,你可以嵌入HTML和所有文件,你不必担心HTML5,因为它已经包括在内 因此,创建HTML文件并将其保存在一个文件夹中(我们称之为“index.html”和本例中的“代码”文件夹),并将其拖入xcode中的支持文件文件夹中。 点击“复制项目...”复选框和“创建文件夹引用...” 然后在你的ViewDidLoad中使用这段代码: NSString* filePath = [[NSBundle mainBundle] pathForResource:@"index" ...
  • 尝试创建您想要的Web项目(Java Web,HTML / JavaScript,Maven Web ...)和创建的index.html(现在不确定JSP,但应该是相同的)并删除doctype定义并保存文件。 之后,排水沟中有一个小灯泡图标(行号的位置)在第1行。如果单击它,它可以让您更改项目的默认文档类型。 将其更改为您想要的任何内容,从现在开始,NetBeans应该在新的类似html的文件中使用此doctype。 Try to create the web like project you want ...
  • 所以感谢@Reza Aghaei的好评,这个问题就解决了。 第一解决方案 确保在打开表单的Appliction.EnableVisualStyles();程序中, Appliction.EnableVisualStyles(); 如果没有,则需要引用System.Windows.Forms 。 然后,所显示的表格看起来就像它在设计师中向您展示的那样。 第二解决方案 调用Appliction.EnableVisualStyles(); 在拥有表单的DLL中。 这可以通过 调用每个表单的构造函数 或者通过dll ...