- 浏览: 1465594 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
luhouxiang:
写的很不错,学习了
Extjs 模块化动态加载js实践 -
kingkongtown:
如果想改成淘宝后台那样,可以在编辑器批量上传图片呢?
kissy editor 阶段体会 -
317966578:
兄弟我最近也在整jquery和caja 开放一些接口。在git ...
caja 原理 : 前端 -
liuweihug:
Javascript引擎单线程机制及setTimeout执行原 ...
setTimeout ,xhr,event 线程问题 -
辽主临轩:
怎么能让浏览器不进入 文档模式的quirks模式,进入标准的
浏览器模式与文本模式
在 web 开发时 , 表单作为用户交互的主题是不可缺少的部分,而这部分我认为又是设计影响最少的部分,工程般得构造一个通用模版 是很方便也是很实用的。而难点恰恰在于 如何在符合现代web标准下实现一个功能完备,代码简洁,结构表现行为分离,富含语义,具备可访问性的表单。
演示页面: 这里
效果图:
1.2
1.5
2.4(结合TipLite)
当css javascript 禁用
效果表单的实现要点:
1.表单的分块管理,对于一个复杂的表单进行区域划分
2.表单域提示标签和输入标签的整洁对齐
3.出错提醒文字的排版与检查
4.如何用xhtml语义标签,css,javascript 将上面的描述分离实现
5.当用户端 css javascript 禁用时 是否具备可访问性
6.加入悬停提示,用户点击后消失,实现为绝对定位的label覆盖在 输入框上
我这里采用了简化的提示标签生成,更好的符合渐进增强理念应该是 提示标签事先现在html中,在其后的javascript中将其隐藏并绝对定位到input上面。
7.当提交失败,用信息层遮罩提交按钮一会再渐隐消失。
以下 将各个要点的关键实现简要描述:
1.区域划分
在form中 用 标签 fieldset 花费出 各个 子表单。
2.表单域布局
将每一组表单域提示标签和输入标签,出错提醒文字看做一个整体块,在该块内对三者布局。
xhtml:
<fieldset> <legend><span>公司登陆信息</span></legend> <div class="fields"> <p> <label class='input_label' for="employerId">用户名 :<em class='required'>(必填)</em></label> <input type="text" class='input_margin' name="employerId" id="employerId" /><span class='feedback'>用户名无效</span> </p> <p> <label class='input_label' for="loginPassword">密码 :<em class='required'>(必填)</em></label> <input class='input_margin' name="loginPassword" id="loginPassword" type='password' /><span class='feedback'>密码无效</span> </p> <p> <label class='input_label' for="loginPassword2">确认密码 :<em class='required'>(必填)</em></label> <input class='input_margin' name="loginPassword2" id="loginPassword2" type='password' /><span class='feedback'>确认密码不相等</span> </p> </div> </fieldset>
css:
form p { margin:5px; } .input_margin { background-color:#FFFFFF; border:1px solid #B9B9B9; width:250px; } /*表单域文字标签向左对齐,并占据相同的宽度(根据用户端字体大小)*/ .input_label { float:left; width:12em; color:#6E6E6E; font-size:12px; } /*对于 高级浏览器提供选中高亮*/ input:focus,textarea:focus { background:#ffc; } input[type="text"],textarea { border-top:2px solid #999; border-left:2px solid #999; border-bottom:1px solid #ccc; border-right:1px solid #ccc; } /*出错提醒紧跟表单输入域后,并设置一定间隔,初始隐藏*/ .feedback { visibility:hidden; font-weight:bold; color:red; padding-left:30px; width:10em; } /*必选按钮着中显示*/ .required { font-size:0.85em; color:#760000; }
3.javascript 粘合剂
js 对 css 和 xhtml 增加交互验证功能,目前演示单单验证非空,进一步可以自定义规则验证,规则可以是正则表达式等。提前配置即可。
当用户离开一个表单域或者提交表单时,需要进行必要的验证。
4.Form 2.0 封装模块Ext.ux.FormLite , 代码使用:
//所有需要验证的表单域 //fieldId:表单域id //regs:每个表单域必须符合的规则集合 //validator 验证函数,返回出错值 //tip : 空文本框时一点提示悬挂 var checkFields= [ {fieldId:'employerDesc',tip:'一点悬浮提醒,没有填写时出现'}, {fieldId:'employerName',regs:[{reg:/.+/,info:'必填哦'},{reg:/[^\d]+/,info:'不能有数字哦'}]}, {fieldId:'employerRegion2',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'contactName',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'contactPhone',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'contactEmail',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'employerId',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'loginPassword',regs:[{reg:/.+/,info:'必填哦'}]}, {fieldId:'loginPassword2',validator:function(){ return this.dom.value!= Ext.get('loginPassword').getValue() ?'密码不一致':''; } } ]; var formValidator = new Ext.ux.FormLite( { //所需验证的表单id formId:'compnay_register_form', //现在为 tip 报错,默认为side ,旁边错误信息显示 //msgType:'tip', //所有需要检测的表单字段配置 checkFields:checkFields } ); //当验证失败时,触发invalid,参数 失败的表单字段 formValidator.on('invalid',function(errorFields) { for(var i=0;i<errorFields.length;i++) { //alert('出错表单 id :'+errorFields[i].id); } });
/* Form 1.2(200904221754) 加入对不同规则显示不同的出错串,优化出错视觉提醒 Form 1.5(200905062249) 加入输入框悬停提示,没有填写时出现,必须有定位的div父元素包含 Form 2.0(200905121707) 封装模块 Ext.ux.FormLite ,增加配置项 Form 2.2(200905191625) 加入验证失败覆盖层遮盖提交按钮,修改tip提醒设置方法 Form 2.3(200906021755) 错误提示修正,表单状态查询,validField增加 Form 2.4(20090803) 增加msgType 配置,结合TipLite 实现错误信息 tip显示 Form 2.4.5(20090930) 示例代码整理,使用 fieldset 分块 */
- form.zip (135.7 KB)
- 下载次数: 14
- form1.1.zip (135.9 KB)
- 下载次数: 9
- form1.2.zip (136.5 KB)
- 下载次数: 29
- FormLite_1.5.zip (55.1 KB)
- 下载次数: 6
- FormLite_2.0.zip (49 KB)
- 下载次数: 8
- FormLite_2.2.zip (50.2 KB)
- 下载次数: 20
- FormLite_2.3.zip (50.3 KB)
- 下载次数: 16
- FormLite_2.4.zip (65.5 KB)
- 下载次数: 11
- FormLite_2.4.5.zip (77.3 KB)
- 下载次数: 40
发表评论
-
ie6下怪异的radio
2010-04-13 19:55 4515首先一句话:查bug的过程是痛苦的,结果是兴奋的。 ... -
mac chrome 标签效果实现
2009-12-10 19:28 2243google 发布了 mac 版的chrome,据说增加了几万 ... -
google code svn mine-type
2009-10-26 16:18 0google code svn mine-type c ... -
compare
2009-10-14 17:26 0compare -
可折叠的面板
2009-08-27 10:19 2174[置顶] Lite-Ext 适合WebPage的轻量级Ext ... -
简朴树形菜单
2009-08-25 18:22 1720[置顶] Lite-Ext 适合WebPage的轻量级Ext ... -
Button In Extjs Style
2009-08-06 18:14 5796[置顶] Lite-Ext 适合WebPage的轻量级Ex ... -
Lite-Ext(20090723).zip
2009-07-23 23:36 0Lite-Ext(20090723).zip -
SliderLite - Extjs-core实现的淘宝首页渐隐版Slider
2009-06-16 17:48 2159归属 [置顶] Lite-Ext 适 ... -
基于Ext-core 好玩的图片部分自由放大工具
2009-05-16 07:04 3292[置顶] Lite-Ext 适合WebPage的轻量级 ... -
TipLite 轻量级的Ext 提示
2009-05-09 21:34 2397[置顶] Lite-Ext 适合WebPage的轻 ... -
CalendarLite 轻量级的Ext 日历
2009-05-05 17:58 3729[置顶] Lite-Ext 适合WebPage的轻量级Ext ... -
ComboBoxLite - 基于Ext-core的自动补全
2009-04-28 19:03 3687[置顶] Lite-Ext 适合WebPage的轻量级Ext ... -
MarqueeLite - 基于Ext-core的marquee
2009-04-28 00:28 1982归属 [置顶] Lite-Ext 适合W ... -
GridLite 轻量级的Ext Grid
2009-04-25 22:54 2491[置顶] Lite-Ext 适合WebPa ... -
WindowLite 轻量级的Ext窗口
2009-04-24 19:19 4224归属 [置顶] Lite-Ext ... -
Lite-Ext 适合WebPage的轻量级Ext
2009-04-23 19:58 6308在开发中经常需要extjs般酷炫的效果,又顾及于extjs臃肿 ... -
TabPanelLite 轻量级的Ext标签
2009-04-23 19:58 2393[置顶] Lite-Ext 适合WebPage的轻量级Ext ... -
三级菜单选择器
2009-03-26 01:41 3353[置顶] Lite-Ext 适合WebPage的轻 ...
相关推荐
XML(Extensible Markup Language)是一种用于标记数据的语言,它在Web服务中扮演着核心角色,因为XML使得数据能够在不同的系统间以标准化的方式交换。在基于Microsoft .NET平台构建XML Web服务时,我们可以利用.NET...
ant工具可以构建web应用,ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现.zip毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现.zip...
XML(eXtensible Markup Language)Web服务是一种通过网络提供和使用数据的方式,它利用标准的XML格式进行通信。在Microsoft .NET平台上构建XML Web服务是开发者常用的实践,因为.NET框架提供了全面的支持来简化这个...
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 1. Hadoop+Hive构建数据仓库 2. django+echarts网站开发 3. 数据清洗,数据模型构建 毕业设计,采用Hadoop+...
SOA实践:构建基于Java Web服务和BPEL的企业级应用 IBM口水书
系统介绍了用XML Web服务构建Web应用程序的知识。首先概述了有关Web服务的基础知识,然后借助一个具体的业务模型,详细介绍了为项目建模、创建与部署Web服务、以及保护Web服务安全和性能优化等高级技术;由于书中的...
《SOA实践—构建基于JavaWeb服务和BPEL的企业级应用》对SOA相关知识的讨论涵盖了面向服务的原理、关键协议与标准、设计与应用的全部过程。《SOA实践—构建基于JavaWeb服务和BPEL的企业级应用》共分8章,第1章对SOA...
pythonDash 是一个用于构建基于 Web 的应用程序的 Python 库,无需 JavaScript 。 Dash 同时也是用于创建分析 Web 应用程序的用户界面库。那些使用 Python 进行数据分析、数据挖掘、可视化、建模、仪器控制和报告的...
"cpp-Tufo用于Qt之上的C++构建的异步Web框架",这个标题明确指出Tufo是一个用C++语言开发的Web框架,特别设计用于Qt平台。"Tufao"是该框架的名字,而“异步”特性表明它支持高效的并发处理,能够处理大量并发请求,...
很实用的资料,构建高性能Web站点,非常全面,值得拥有
JavaScript构建Web和ArcGIS Server应用实战
高清带书签_构建高性能WEB站点,分布式入门与进阶必备好书!
本书围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,涵盖了Web站点性能优化的几乎所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式...
Blazor是一个实验性的单页面应用程序框架,用于使用.NET和WebAssembly构建客户端Web应用程序。 在本次研讨会中,我们将构建一个完整的Blazor应用程序,并在此过程中了解各种Blazor框架功能。
构建虚拟web主机
《精通CSS:高级Web标准解决方案》是一本专为前端开发者深度探索CSS技术的权威指南,由英国的三位知名Web开发专家尼尔·巴德(Nigel Bardsley)、克里斯·科利森(Chris Collison)和加雷斯·莫尔(Gareth Moore)...
构建可靠的Web应用程序是现代互联网行业中至关重要的一环,它涉及到服务器稳定性、数据安全性、用户体验优化等多个方面。本资源包提供了一份名为“Microsoft Windows Server 2003应用开发系列讲座二:构建可靠的 Web...
本书是畅销修订版,围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,几乎涵盖了Web站点性能优化的所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据...