Validation的onfocusout出错问题及valid()无法远程验证问题

原创 2015年07月10日 14:55:46

settings[eventType].call is not a function错误

使用Validation验证框架时,会需要在文本域失去焦点时触发对当前文本域验证。
不设置onfocusout属性,默认在失去焦点时是触发验证的,不清楚状况的在修改onfocusout的值时会想当
然的认为开启或关闭这个功能只要把他设置成true或false即可,我在使用时就是这样,设置了true,导致在
js中报出了错误:

TypeError: settings[eventType].call is not a function错误

一阵蛋疼后果断翻API,这是官网onfocusout属性的API:
这里写图片描述
原来如此,果断去除 onfocusout:true, 问题解决!
翻看了下Validation中onfocusout源码:

onfocusout: function( element ) {
    if(!this.checkable(element) && (element.name in this.submitted || !this.optional(element))){
        this.element(element);
    }
},

所以在开启这个功能时也可以这样:

onfocusout:function(element) { $(element).valid(); },

同样的属性还有onkeyup和onclick!

valid()无法远程验证

    使用Validation框架,.valid()方法会对表单中所有需要验证的文本域进行验证,valid()不接受任何参数,返回值是
boolean,验证不通过返回false,通过返回true。
    看到这个方法欣喜若狂,可以把“添加验证”和“进行验证”分离开了;是这样分离的:
        1、表单加载完后使用form.validate()添加验证
        2、表单的提交按钮使用button,点击触发自定义的提交事件submitForm
        3、submitForm中使用form.valid()方法,判断表单是否验证通过,通过即提交表单
    这样如果要把验证去掉就只去掉第一步就可以了
    这中方式在表单的长度、类型等验证中都能正常使用;不过,当表单中存在remote远程验证的话,就不灵了,
    这应该是Validation的一个bug。

无奈只能使用.validate()的submitHandler,不过这种就不能算“分离”了:

submitHandler: function(form){   
    ajaxSubmit(form);//自定义的提交方法
}, 

问题成功解决。希望此文对碰到这个问题的朋友有所帮助。

相关文章推荐

springmvc 使用validation校验无法加载properties文件,及验证信息乱码的问题

今天在使用JSR-303 validation进行校验时出现了标题中的相关问题 po类相关代码: @Size(min=1,max=30,message="{items.name.length....
  • Geralt3
  • Geralt3
  • 2017年07月17日 19:44
  • 542

套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:01:00”

实例下载 地址: http://dl5.csdn.net/fd.php?i=894944736291635&s=40776d56dc82a5bd883c8138fddd671f   今天在写W...

Struts2.1.8 验证框架(validation)的使用中遇到的一些问题(直接访问jsp遇到的错误)--Allen

今天要写struts2.1.8中的validation的练习,于是乎凭着以前看过的记忆,边查文档边写……但是随后遇到的问题,令我很恼火,上网一查,原来遇到的人也不少……    问题描述:按照str...

交叉验证(Cross Validation)方法 && SVM的多分类问题

交叉验证(Cross Validation)方法思想简介 以下简称交叉验证(Cross Validation)为CV.CV是用来验证分类器的性能一种统计分析方法,基本思想是把在某种意义下将原...
  • wm_1991
  • wm_1991
  • 2015年11月24日 11:00
  • 4234

Struts2.1.8 验证框架(validation)的使用中遇到的一些问题(直接访问jsp遇到的错误)

今天要写struts2.1.8中的validation的练习,于是乎凭着以前看过的记忆,边查文档边写……但是随后遇到的问题,令我很恼火,上网一查,原来遇到的人也不少…… 问题描述:按照struts2....

使用Jquery validation组件对easyui-datebox组件的时间进行验证遇到的问题

最近在处理一个”简单”任务,就是在表单提交前,想对表单中输入的时间进行验证,如果没输入数据,提示“必填字段”。下面列一下处理过程中遇到的问题。 问题一 : 使用Jquery 的validation框...

Mac下MAMP Pro 启动数据库MySQL出错导致无法启动的问题

问题1: InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoD...

解决Android从相册中获取图片出错图片却无法裁剪问题的方法

在学习获取相册中图片进行裁剪的时候遇到了比较大的问题,在纠结了近半天才真的解决,下面分享一下学习经验。 问题: 选择了相册中的图片之后要进入图片裁剪的时候出错,(华为)手机提示“此图片无法获取”,...

winxpsp3或win7下安装vb2008 express和sql server 2005/2008 express IIS出错无法浏览 各种问题汇总记录

之一:winxp sp3下安装vb2008 express和sql server 2005/2008 express 各种问题 1、vb2008 express 在win7上有的电脑能完全安装成功...
  • lengyff
  • lengyff
  • 2015年04月04日 13:08
  • 829

android studio 百度地图打包后key验证出错问题解决

最近用百度地图编写了个小项目,签名打包后却提示:,错误码:230,请AndroidManifest.xml文件中检查 kye 设置           很奇怪啊!正常运行没问题,签名打包过后出现这个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Validation的onfocusout出错问题及valid()无法远程验证问题
举报原因:
原因补充:

(最多只允许输入30个字)