jQuery验证引擎验证控件调用外部函数验证方法
使用jQuery验证引擎时,我们不仅可以使用自己的API,还可以自定义常规验证。自定义定期验证在上一篇文章中已经提到过。如果您想使用自定义函数进行验证,该怎么办?事实上,这个控件有一个bug,这在api中有描述
也就是说,我们在需要验证的地方添加了funcCall[自定义函数名],但是总是会报错,说找不到你的函数名。其实它的要求是添加全面验证的required,也就是validate [required,funccall [yorn]],这样就可以识别我们的自定义函数。但我们只是不想要要求的那个。还是我们希望required(一个非空的验证函数)仅在满足某些条件时才生效?
text area class=' m-area add-twvalidate[func call[yorn]]' id=' remote ' cols=' 30 ' row=' 10 '/text area,那么下面的方法需要综合实现。在线外国人的解决方案是在函数中推送一个必选项,这样就可以正常执行了。
我定义了一个函数yorn,基本格式是function yorn (field,rules,I,options) {},其中field代表你验证的元素,我在这里验证了textarea,所以field代表textarea。
首先,我来说说我想实现的功能。我的要求是点击失败,备注为空时触发验证,提示“内容必须填写”。那么通过备注为空、通过备注不为空、失败备注不为空时,验证提示信息不会被触发。并且如果validate[required]是这样的,只要备注没有填写就会触发提示信息。因此,我的想法是在点击Save按钮时判断点击了哪个单选按钮,并为点击失败的单选按钮添加一个自定义属性,同时赋值。并在通过单选按钮单击时删除此自定义属性。然后进入验证,即进入自定义函数,得到未通过单选的自定义属性值,得到备注的值,然后判断这两个条件是否同时成立。如果条件成立,首先是rules . push(' required ');因为我们前面说过,如果要实现自定义函数验证,必须有required,然后返回options。all rules . required . alert text;这句话是什么意思?就是返回你想要提示的信息。这条信息是在别处设置的。
Html文件,验证[funcCall[yorn]]设置用户定义函数验证[funcCall[用户定义函数名]]
表单id='approval'/此验证控件必须具有表单Div class=' name-ipt ' Div class=' m-name ' span注释:/span/div输入类型=' radio ' name=' trial ' class=' m-radiol '/Pass输入类型=' radio ' name=' trial ' class=' m-radiol ' Id=' no check '/fail/Div class=' name-ipt '/Div class=' area-ipt add-TD ' Div class=' m-name ' span注释:/span/div剩下的可以用1000字输入/span/div/div/formdiv Class=' add-sb ' a href=' # Class=' save-BTN m ' ng-click=' save audit()' save/a/div(有效:步骤1)因为我使用angular,所以我会保存一个事件,当我单击save时触发该事件,然后判断两个单选中的哪一个被选中,其他的都在上面提到过。然后触发验证进入自定义功能。
//写入/保存$ scope。save audit=function(){ if($(' # no check ')。attr('选中'){$ ('#备注')。您自己的js文件中的attr ('trial attr ',' n ');} else { $(' #备注')。remove attr(' TriAttr ');} if ($ ('# approval ')。validation engine(' validate '){//验证通过后会执行什么}}(有效:步骤2)用户定义函数必须自带rules . push(' required ');同时,returnoptions . all rules . required . alert text;这个自定义函数可以写在您自己的js文件中
//在自己的js文件中写入函数yorn (field,rules,I,options) {var铁人三项=field.attr('铁人三项');var textareaval=field . val();if(TriAttr==' N ' textareaval==' '){ rules . push('必选');返回options . allrules . required . alerttext;}}(生效:第三步)接下来,需要设置自定义提示信息,找到jQuery。ValidationEngine-zh _ cn.js文件,然后在底部跟随一个对象,前面是函数名,后面是alertText,后面是您想要提示的信息。没关系。
//这是用jquery . validation engine-zh _ cn . js写的。
(活动:步骤4)
之前我根据这个文件底部的api定制了一个函数,但是发现根本无法执行,因为在进入验证的时候,首先要判断用户自定义的validate [required,funccall [yorn]]的函数中是否有required,如果不存在就不能进入jquery。validationengine-zh _ cn.js来执行我们内部定义的函数。但是如果把自定义函数放在自己的js中,我们会先在自己的js文件中执行函数,最后判断是否有需要。此时我们已经推了进去,所以不会报告找不到你的自定义函数名。
(此为无效不可执行,请勿使用。)
这个验证控制其实挺好的,但是这个bug已经研究了很久了,不过好在网上有解决方案,但是好像都没有我说的那么清楚,只是指出来了。希望对大家有帮助,留着以后用。
版权声明:jQuery验证引擎验证控件调用外部函数验证方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。