`
yiminghe
  • 浏览: 1471492 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

构建标准web 之 FormLite

阅读更多


在 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 分块 
*/

 

 

 

  • 大小: 33.8 KB
  • 大小: 47 KB
  • 大小: 53.2 KB
  • 大小: 15.3 KB
  • 大小: 32.1 KB
  • 大小: 45 KB
  • 大小: 44.7 KB
  • 大小: 20.5 KB
  • 大小: 26.6 KB
  • 大小: 17.1 KB
分享到:
评论
1 楼 popoer 2009-05-22  
我只想说,博主你太有才了

相关推荐

    构建安全Web站点资源下载

    构建安全Web站点构建安全Web站点构建安全Web站点构建安全Web站点构建安全Web站点构建安全Web站点

    构建XML Web服务:基于Microsoft NET平台

    XML(Extensible Markup Language)是一种用于标记数据的语言,它在Web服务中扮演着核心角色,因为XML使得数据能够在不同的系统间以标准化的方式交换。在基于Microsoft .NET平台构建XML Web服务时,我们可以利用.NET...

    构建动态Web站点方法

    构建动态Web站点是现代互联网应用的核心技术之一,它涉及到服务器端编程、数据库管理、客户端交互等多个方面。动态Web站点能够根据用户输入或者特定条件实时生成页面内容,提供更丰富的用户体验和更高的互动性。以下...

    WebSocket实时通信:构建高效实时Web应用

    本文将详细介绍WebSocket的基本概念、工作原理、实现方法以及在构建实时Web应用中的应用。 WebSocket提供了一种高效、灵活的实时通信机制,适用于需要快速响应和实时交互的Web应用。通过本文的介绍,读者应该能够...

    ant工具可以构建web应用

    ant工具可以构建web应用,ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用ant工具可以构建web应用

    构建XML Web服务:基于Microsoft NET平台.rar

    XML(eXtensible Markup Language)Web服务是一种通过网络提供和使用数据的方式,它利用标准的XML格式进行通信。在Microsoft .NET平台上构建XML Web服务是开发者常用的实践,因为.NET框架提供了全面的支持来简化这个...

    毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现

    毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 1. Hadoop+Hive构建数据仓库 2. django+echarts网站开发 3. 数据清洗,数据模型构建 毕业设计,采用Hadoop+...

    探索 Blazor WebAssembly:构建现代Web应用的新途径

    随着WebAssembly技术的不断发展,Blazor WebAssembly有望成为构建现代Web应用的重要工具之一。 通过本文的介绍,你应该对Blazor WebAssembly有了基本的了解。如果你对使用C#构建Web前端感兴趣,那么Blazor ...

    Dash 是一个用于构建基于 Web 的应用程序的 Python 库,无需 JavaScript

    pythonDash 是一个用于构建基于 Web 的应用程序的 Python 库,无需 JavaScript 。 Dash 同时也是用于创建分析 Web 应用程序的用户界面库。那些使用 Python 进行数据分析、数据挖掘、可视化、建模、仪器控制和报告的...

    构建高性能web站点part2

    构建高性能web站点,郭欣,pdf,完整版,质量不错;构建高性能web站点,郭欣,pdf,完整版,质量不错

    构建高性能Web站点 (修订版)

    很实用的资料,构建高性能Web站点,非常全面,值得拥有

    高清带书签_构建高性能WEB站点

    高清带书签_构建高性能WEB站点,分布式入门与进阶必备好书!

    dotnet-Blazor是一个单页面应用框架使用NET和WebAssembly构建客户端Web应用

    Blazor是一个实验性的单页面应用程序框架,用于使用.NET和WebAssembly构建客户端Web应用程序。 在本次研讨会中,我们将构建一个完整的Blazor应用程序,并在此过程中了解各种Blazor框架功能。

    构建虚拟web主机 .mp4

    构建虚拟web主机

    精通CSS高级Web标准解决方案PDF扫描高清版

    《精通CSS:高级Web标准解决方案》是一本专为前端开发者深度探索CSS技术的权威指南,由英国的三位知名Web开发专家尼尔·巴德(Nigel Bardsley)、克里斯·科利森(Chris Collison)和加雷斯·莫尔(Gareth Moore)...

    《JavaScript构建Web和ArcGIS Server应用实战》源代码

    《JavaScript构建Web和ArcGIS Server应用实战》是一本深度探讨如何使用JavaScript开发Web GIS应用程序的专业书籍。这本书籍的源代码提供了丰富的示例和实践项目,帮助读者深入理解JavaScript在Web GIS开发中的应用。...

    构建可靠的Web应用程序

    构建可靠的Web应用程序是现代互联网行业中至关重要的一环,它涉及到服务器稳定性、数据安全性、用户体验优化等多个方面。本资源包提供了一份名为“Microsoft Windows Server 2003应用开发系列讲座二:构建可靠的 Web...

    精通CSS高级Web标准解决方案 PDF

    《精通CSS:高级Web标准解决方案》是一本专为前端开发者深度探索CSS技术的权威指南。这本书深入剖析了CSS的核心概念,提供了丰富的实践案例,旨在帮助读者掌握构建高效、可维护和响应式的网页布局的高级技巧。 在...

    web2.0环境下的信息构建研究(一)——信息构建发展的新阶段

    随着Web2.0概念的兴起,互联网环境发生了显著变化,用户的角色更加凸显,信息构建也随之进入了全新的发展阶段。 ### Web2.0环境下信息构建的变革 Web2.0不仅是一种技术升级,更是一种理念的转变。它强调用户中心...

Global site tag (gtag.js) - Google Analytics