基于prototype校验框架个人总结

心得:
[color=red]首先[/color],在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 再也不会影响到先前已有的事件处理程序调用了
[color=red]其次,[/color]在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。
下面我们具体看一下这个类的实现,有哪些方法和属性
[color=red]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方法进行校验是否合法。[/color]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值