从JQuery自定义校验规则中看JS箭头函数的this指向问题

数字追月鹤
• 阅读 914

哈哈,题目给人一种写论文的感觉,但其实这篇文章要讲得东西很少,很简单,就当做是填了个坑吧。
今天在做项目的时候,要给form表单添加一些自定义的校验规则,于是参考菜鸟教程的代码,自己按需求写了一下校验规则。
从JQuery自定义校验规则中看JS箭头函数的this指向问题

如上图,这是菜鸟教程官方给的,受上一个项目写js代码的习惯影响,我把原始的function函数写法改成了箭头函数,如下图所示。↓
从JQuery自定义校验规则中看JS箭头函数的this指向问题

感觉没有什么特别大的问题,校验写好了,也绑定到了form对应的元素上面,可是,提交表单的时候,控制台报错了,提示
"this.optional is not a function",于是google了一下,发现是由于箭头函数的原因。箭头函数没有自己的this上下文,函数体中出现的this在运行时绑定到最近的作用域上下文对象。绑定在元素上的校验触发之后,按照普通函数的写法,this即指向调用该方法的“validator”对象。但是,按照箭头函数this的属性,this即绑定到了最近一层的作用域“document”节点。

点赞
收藏
评论区
推荐文章
kenx kenx
4年前
SpringBoot Validation参数校验 详解自定义注解规则和分组校验
前言HibernateValidator是BeanValidation的参考实现。HibernateValidator提供了JSR303规范中所有内置constraint的实现,除此之外还有一些附加的constraint在日常开发中,HibernateValidator经常用来验证bean的字段,基于注解,方便快捷高效。在Spr
Wesley13 Wesley13
3年前
jcsv导入导出动态扩展思路
我整理的jcsv工具类库简介:csv导入导出组件jcsv(https://my.oschina.net/lipengxs/blog/3094719)jcsv可以支持导入校验规则动态扩展,以及导出规则动态扩展。下面来介绍下扩展思路问题我们支持文件校验、题头校验、列校验等,规则已经多样化,已经覆盖了绝大多数场景,但是难免有一些个性化的校
Wesley13 Wesley13
3年前
Java增加校验位
publicabstractclassSerialResouce{//工作中的简单例子,大家根据需求自己修改校验规则publicabstractStringgetNextSerialNo(Stringyear,Stringtype)throwsException;/
Stella981 Stella981
3年前
JQValidate使用说明
JQueryValidate使用总结:一、导入js库<scriptsrc"../js/jquery.js"type"text/javascript"</script<scriptsrc"../js/jquery.validate.js"type"text/javascript"</script二、默认校验规则
Easter79 Easter79
3年前
Spring校验@RequestParams和@PathVariables参数
我们在写RestAPI接口时候会用到很多的@RequestParam和@PathVariable进行参数的传递,但是在校验的时候,不像使用@RequestBody那样的直接写在实体类中,我们这篇文章讲解一下如何去校验这些参数。依赖配置要使用JavaValidationAPI,我们必须添加validationap
Wesley13 Wesley13
3年前
MySQL 字符集和校验规则工作流程
MySQL字符集和校验规则工作原理_字符编码相关参数__数据流中的转码过程__校验规则_Tips:字符集和校验规则总是相伴的一从简单的建库语句开始CREATEDATABASEIFNOTEXISTS<db_nameDEFAU
Wesley13 Wesley13
3年前
MySQL字符集小结
一:什么是字符集字符集支持多层面:服务器层(server)、数据库层(database)、数据表(table)、字段(column)、连接(connect)、结果集(result)。1.字符集是一套符号和编码规则,字符串必须有相应的字符集。2.校验集是这套符号和编码的校验规则,定义字符排序规则,字符串之间比较的规则。3.非ASCII字
Stella981 Stella981
3年前
LeetCode 5561. 获取生成数组中的最大值
文章目录1\.题目2\.解题1\.题目给你一个整数n。按下述规则生成一个长度为n1的数组nums:nums00nums11当2<2i<n时,nums2inumsi
Stella981 Stella981
3年前
ASP.NET全栈开发验证模块之在Vue中使用前端校验
前面分享了两篇关于.NET的服务端校验的文章,在系统里光有服务端校验虽然能够勉强使用,但会出现许多不愉快的体验,如上一章我在最后提交的时候填写了3个表单,在仅有最后一个表单出现了错误的时候,虽然达到了校验功能,表明了错误,但我前面三个表单的数据都被干掉了啊。再则比如注册的时候我填了那么多东西,我提交后你却告诉我已经被注册了,如果不是真爱,大概会毫不留情的Al
看不懂正则表达式?试试可视化工具吧!
1.前言是一种用来匹配字符串的强有力工具。设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串我们就认为它“匹配”了,否则该字符串就是不合法的。日常开发中常常会使用正则表达式,例如:对数据格式进行校验(判断一个字符串是否是合法的Emai
位流程风 位流程风
1个月前
免费还好用!雷池 WAF 社区版:自定义规则轻松配,黑白名单拦截威胁不花钱
自定义规则配置教程大家在使用waf的时候,因为业务特殊性和waf的严格校验,有时会产生误报,阻拦合法流量。这个时候,只能通过自定义规则进行补充,选择加白名单或者黑名单。很多人会说配置黑白名单失效了,其实95%以上都是自己配置错了,黑白名单没有生效导致的。由