`
moonlight2010
  • 浏览: 19162 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

基于prototype校验框架个人总结

    博客分类:
  • java
阅读更多
心得:
首先,在FM_validation.js中运用
Event.observe(window,'load',Validation.autoBind,false);
这个方法绑定了window的onload事件的处理程序。
这句话的意思是window的onload事件的处理程序是Validation.autoBind方法。
Observe的强大之处在于,
如果你的页面中有window。Onload函数的重新定义。比如我们财务系统中在加载的时候要
在页面划斑马线,也是在onload中进行的。
Observe注册onload事件并不会覆盖的你已经定义的方法。只会追加在事件处理列表中。
专业解释如下:
对于那些相同的元素事件(element+event)组合,它并不会替换已经存在的事件处理程序,而是将新的处理程序增加到元素事件组合的 处理程序列表 中。使用 observe 再也不会影响到先前已有的事件处理程序调用了
其次,在Validation.autobind方法中。遍历页面中的所有form元素。
这些form元素的共性是class的属性是required-validate.
根据document.getElementsByClassName('required-validate')这个方法就可以得到页面中所有的form元素。
遍历得到的form对象,并且根据每传过来一个form对象实例化一个validation对象。
然后绑定form的reset方法到validation的reset方法中。代码如下
Event.observe(form,'reset',function() {validation.reset();},false);
现在最重要的类出现了就是validation。
下面我们具体看一下这个类的实现,有哪些方法和属性
Validation说明:
第一, validation是一个大的校验类,对应每个校验标识生成一个validatior检验对象。
Validation和validator是不一样的。
Validation运用addallthese方法填充methods属性,validation.methods的值一个hashmap,
Key对应的就是jsp页面中输入的标识,比如required,validate-number等等,值就是对应的validator对象。这个对象就是对应标识生成的。对象的参数是:
错误提示代码字符串,校验函数。
第二, 遍历form中每个元素,然后再对每个元素进行遍历他的classname。
根据不同的clasname进行校验。根据classname数组中每个标识遍历validation.methods找到对应的validator对象。
然后调用validator.test方法进行校验是否合法。


最后,说一下fireEvent方法
fireEvent的方法,在我看来就是自动触发一个 事件。
举一个例子,正常情况下,如果我们想触发onclick事件,那么你肯定要用鼠标进行点击才可触发的。
Fireevent方法可以使你不用手工触发onclick事件,就可以执行onclick相对应的程序。是不是很强大。并且支持冒泡。
fireevent返回值问题:
正常情况下,fireevent的返回值是true,这样的话就可以使其事件进行向上传递。
但是如果在你对应事件处理代码中写到
Window.event.returnvalue = false;
那么返回值就是false,并且停止传递。
如果你引用prototype的话。
可以这样写
Event.stop(ev);ev是你的事件处理函数的参数。表示当前事件。
分享到:
评论

相关推荐

    基于prototype的表单验证框架rapid-validation-v1.0

    简洁,快速的验证语法 无需编写验证提示信息(当然也支持自定义提示信息) 错误消息在指定地方显示 支持组合验证 Ajax支持 基于prototype.js 支持国际化 易于扩展 基于标准的Html属性...

    javascript验证框架

    javascript验证框架 基于prototype

    基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼

     欢迎大家提出改进,以便框架完成的更好如果需要,我会在将来开发出与服务端结合的开发框架,如struts and struts2 并且感谢原作者这么棒的Idea: http://tetlaw.id.au/view/blog/really-easy-field-validation-w

    Really easy field validation with Prototype 1.5.3 中文扩展版

    一个基于prototype表单前端验证工具,与其它库相比,简单易用. 包括国际化支持,内附说明,和使用举例。

    easyValidation

    easyValidation是个基于PROTOTYPE实现的JS验证框架。

    easyValidation2

    easyValidation2是基于PROTOTYPE实现的验证框架,很不错的,值得

    PHP+Ajax网站开发典型实例

    PHP+Ajax网站开发典型实例.... 实例80 基于prototype框架程序 实例81 基于xajax框架程序 第10章 Ajax实现综合实例 实例82 汇智在线留言板程序 实例83 汇智在线聊天室程序 实例84 汇智在线BBS论坛

    ValidationJS-开源

    一个使“易于使用”的项目,基于客户端 javascript 的公式验证,构建在 PrototypeJS 框架之上。 使用尽可能少的代码使验证更容易和可读。

    asp.net知识库

    利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL...

    dl-lifecycle-e2e-design:架构和构建用于对象检测的深度学习生命周期

    以此为主要重点,我将遵循此设计并通过基于Prototype的对象检测和计数进行验证。 原型用例称为“在家中了解对象” :house: 它基本上是一个移动应用程序,可以使用图像捕获和计数您家中的不同对象,并提供其价值的...

    java 面试题 总结

    EJB包括Session Bean、Entity Bean、Message Driven Bean,基于JNDI、RMI、JAT等技术实现。 SessionBean在J2EE应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用其他EJB组件。EntityBean被用来...

    Ajax基础教程(扫描版)

    5.7.1 通过prototype属性建立面向对象的javascript 142 5.7.2 私有属性和使用javascript的信息隐藏 146 5.7.3 javascript中基于类的继承 148 5.7.4 汇合 149 5.8 小结 152 第6章 使用jsunit测试javascript代码 ...

    Spring中文帮助文档

    2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 ...

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring3.x企业应用开发实战(完整版) part1

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring API

    2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态语言支持 2.6.2. 增强的测试支持 2.6.3. JMX 支持 ...

    Web开发敏捷之道-应用Rails进行敏捷Web开发-第三版.rar

    24.1 Prototype 423 24.2 Script.aculo.us 438 24.3 RJS模板 451 24.4 结论 456 第25章 ActionMailer 457 25.1 发送邮件 457 25.2 接收邮件 465 25.3 电子邮件的测试 467 第26章 Active Resource 469 26.1 Active ...

    Spring 2.0 开发参考手册

    3.4.2. Prototype作用域 3.4.3. 其他作用域 3.4.4. 自定义作用域 3.5. 定制bean特性 3.5.1. Lifecycle接口 3.5.2. 了解自己 3.6. bean定义的继承 3.7. 容器扩展点 3.7.1. 用BeanPostProcessor定制bean ...

Global site tag (gtag.js) - Google Analytics