解决bootstrapvalidator配合select2插件不能正常校验的问题
我在使用bootstrapvalidator对select2插件进行校验时,出现了不能校验的问题,于是求助度娘,发现大多的解决方法是这样的:
1.添加一个隐藏域,将bootstrapvalidator设置成对该隐藏域校验。
2.下拉框的值改变时给隐藏域赋值。
3.对bootstrapvalidator设置隐藏域可校验的属性。excluded : [':disabled'],//[':disabled', ':hidden', ':not(:visible)'] //设置隐藏组件可验证。
我亲自试验了一下,是可行的。但是这种方式让我感到很别扭,于是寻找了一下不能校验的原因,是bootstrapvalidator不会自动去校验第三方插件。
那既然这样我手动去让它校验不就可以了吗?果然如此:
这是我的手动校验方法:$(form).data('bootstrapValidator').validate(); 通过按钮触发。
在我改变select2的值的时候,不会发生校验,但当我点击按钮,触发上述方法时会触发校验。
这是初始状态:

这是选中某个值的状态:并没有校验

这是我点击了提交按钮的状态,也就是说调用了手动校验的方法:

果然是成功校验了!
那么问题就简单了,我在select2的change事件中调用针对该下拉列表的校验即可解决问题。
针对单个输入域校验的方法是$(form).data('bootstrapValidator').validateField(‘status’);
我的select2是div方式的:<div id="status" name="status"></div>,所以change事件这样写
$('#status').on('change',function(e){
$(form).data('bootstrapValidator').validateField(‘status’);
});
来看看效果:
这是初始状态:

这是选中某个值的状态:

可以看到自动校验成功了!
但是有个bug,当我点那个小叉号清除后,并没有进行非空校验,如图

但此时确实也触发了change事件调用了手动校验的方法。。。于是一阵搜索,发现需要清除一下校验状态。。。原因尚不清楚。。。
好吧,清除校验状态的方法是updateStatus('status', 'NOT_VALIDATED')
再来更新一下change方法:
$('#status').on('change',function(e){
$(form).data('bootstrapValidator').updateStatus('status', 'NOT_VALIDATED').validateField(‘status’);
});
这样就好了!!请看

这个“对号”和“叉号”的位置有点歪,这都是小问题,css修改一下位置就可以了,很简单,所以这里就不写了。
解决bootstrapvalidator配合select2插件不能正常校验的问题的更多相关文章
- 在select2插件中append下拉选,点击没反应的解决
今天前端大佬帮我解决了一个棘手的问题:克隆了已有系统的网页,尝试把复制下来的html改造成jsp.基本功能正常,然而点击新增按钮,出来的行无法点击下拉选,控制台也没报错. 项目用的是jeesite2. ...
- select2插件
引入select2插件<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min. ...
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用>介绍了数据的分页处理,使用了Bootstrap Paginator插件,另外 ...
- Metronic_下拉列表Select2插件的使用
这个插件是基于Select的扩展插件,能够提供更加丰富的功能和用户体验,它的github官网地址为:https://select2.github.io/,具体的使用案例,可以参考地址:https:// ...
- 解决laydate时间日期插件定位溢出
laydate是一款比较好用的网页时间日期插件,不过用起来有一些细节问题需要我们手动去解决!例如:laydate兼容bootstrap 1. 默认情况 laydate弹出层默认对齐input左边框 2 ...
- 解决IDEA安装Python插件,下载失败的方法
一.问题 通过file-->settings-->Plugins 安装python时,会提示下载失败.可以采用以下方法解决. 二.解决办法 1.在help/about中查看IDEA版本,作 ...
- jQuery的下拉选select2插件用法
1转自:https://www.jb51.net/article/95561.htm 用了这么久的Select2插件,也该写篇文章总结总结.当初感觉Select2不是特别好用,但又找不到比它更好的下拉 ...
- select2插件用法
1.修改默认查询方法,使其可以根据value查询 this.element.select2({ allowClear: true, matcher: function (term, text, ele ...
- Select2插件的隐藏、设置宽度
<select id="selPrinvice" class="Select2 select2-hidden-accessible" style=&quo ...
- 01:jQuery的下拉选select2插件用法
1.1 select2插件基本使用 1.下载select2插件 1. 下载地址:https://github.com/select2/select2 2.官网地址:https://select2.or ...
随机推荐
- 理解 ASP.NET Core: Host
dotnet core 非常好用,代码也及其精炼,但是,你真的搞懂了每一行代码背后的含义了吗? 本文希望能够深入浅出地梳理一下它的脉络,把它从神秘变成水晶一般透明. 本文关注于分析 Pragram.c ...
- 【Python】2023年Python期末复习题
Python百分百挂科指南 出题人,出的题,水平不咋样,给出的参考答案一堆错误,给出的正确选项单词都能拼错. 非本次考试人员不必看,没有参考价值 选择题 下列哪个标识符是不合法的()D A. Name ...
- 【网站搭建】Docsify+Gittalk的配置过程记录分享。原创!
Gittalk 配置 这个不一定最先配置,我也不建议你最先配置这个,这个最好最后配置. 萌狼蓝天把这个的配置写在第一条,是因为我在这折腾了很久,就是因为网上抄来抄去的答案,除了迷惑萌狼蓝天难以给萌狼蓝 ...
- conda虚拟环境中设置环境变量
引言 使用conda创建虚拟环境就是为了方便管理,各个环境之间的模块是独立的.有时候我们在做项目的时候需要设置一下环境变量才方便实用,但是不想影响到其他的虚拟环境,因此不能再系统的环境变量里面设置. ...
- Java多线程处理文件详解与代码示例
在Java编程中,文件处理是一项常见的任务.当需要处理大量文件或处理文件的时间较长时,单线程的处理方式可能会显得效率低下.为了提高文件处理的效率,我们可以使用多线程技术.本文将详细介绍如何使用Java ...
- Qt编写的项目作品33-斗图神器(雨田哥作品)
一.功能特点 支持HTTP,HTTPS网络表情图片下载,本地缓存. 采用MV模式,支持大量图片表情预览查看. 采用多线程异步下载图片刷新. 图片搜索功能(因网络提供API无信息字段提供,占搜索不了.但 ...
- Qt编写安防视频监控系统31-onvif设备搜索
一.前言 做视频监控系统,绕不过onvif这玩意,这玩意主要就是为了统一一个大概的标准,能够对各个厂家的监控设备进行常用的一些操作,比如搜索.获取信息.云台控制.事件订阅.抓拍图片等,如果没有这个规范 ...
- [转]C# PowerPoint操作的基本用法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECO ...
- 贝叶斯定律和卡尔曼滤波中,关于(e^-x)*(e^-x)的积分的计算方法
贝叶斯定律和卡尔曼滤波中,关于(e^-x)*(e^-x)的积分的计算方法: 1.用数学软件Mathmatica计算: 2.用复变函数中的留数定理计算: 3.用FFT+卷积公式计算.
- 痛苦调优10小时,我把 Spark 脚本运行时间从15小时缩短到12分钟!
周一我就有个困惑,还写成文章了:如何从 Spark 的 DataFrame 中取出具体某一行,里面提了自己猜想的几种解决方案. 没想到这么快就要面对这个问题了,我用小孩子都听得懂的例子描述一下我在干什 ...