妙用Bootstrap的 popover插件实现校验表单提示功能


Posted in Javascript onAugust 29, 2016

最近的项目,用Bootstrap比较多。浏览Bootstrap文档,发现 popover 插件特别适合做表单校验出错的提示。

因为使的非常频繁,最近把它封住下,做成 jQuery的插件。 通过 本插件,在 html标签中 定义好 data-vaild=”校验正则” data-errmsg=”错误信息即可”。为什么 要把 校验规则 写到 html 标签中呢?因为 我还用它做了 后台 的校验规则(后台没用Node,现在用的ASP,忙完专门再发文写下原理)。

<input class="form-control" id="u_exam_idnumber" name="u_exam_idnumber" placeholder="请输入中考准考证号" data-vaild="^\d{5,20}$" data-errmsg="准考证号码不正确,仅能包含数字"

最终实现的效果如下:

妙用Bootstrap的 popover插件实现校验表单提示功能

插件代码如下:

"use strict";
/*
jQuery+Bootstrap 校验表单 by Miaoqiyuan.cn
原理:http://www.miaoqiyuan.cn/p/jquery-bootstrap-vaild
演示:http://www.miaoqiyuan.cn/products/vaild/index.html
源码:http://www.miaoqiyuan.cn/products/vaild/jQuery.Vaild.js
*/
(function(jQuery){
$.extend({
Vaild : function(_this){
if( !!$(_this).data("vaild") ){
var pattern = new RegExp($(_this).data("vaild"));
if( pattern.test( $(_this).val() ) ){
$(_this).parent().removeClass("has-error").addClass("has-success");
$(_this).popover("destroy");
}else{
$(_this).parent().addClass("has-error").removeClass("has-success");
$(_this).data("toogle", "top").data("placement", "top").data("container", "body").data("content", $(_this).data("errmsg")).popover({"trigger":"manual"}).popover("show");
return false;
}
}else{
$(_this).parent().addClass("has-success");
}
return true;
}
});
$.fn.extend({
Vaild : function(){
$(this).each(function(index, _this){
$(_this).submit(function(){
var checkResult = true;
for(var i = 0 ; i < _this.length; i++ ){
checkResult = $.Vaild(_this[i]) && checkResult;
}
return checkResult;
});
for(var i = 0 ; i < _this.length; i++ ){
$(_this[i]).blur(function(){
$.Vaild(this);
});
}
});
}
});
})(jQuery);

调用的时候非常简单,直接使用以下代码:

<script>
$("form").Vaild();
</script>

当表单失去焦点时,如果不合法,会直接提示错误。点击提交时,如果有表单项目不合法,会阻止表单继续提交。

popoover默认的背景是 白色的,不能起到 警示作用,而且 padding 设置过大,太占用空间了。 最后调整下CSS,就实现了 截图的效果。

/*重构 popover */
.popover{background:#C00;color:#FFF;}
.popover .popover-content{padding:1px 5px;}
.popover.top>.arrow:after{border-top-color:#C00;}
/*重构 bootstrap 默认错误提示 */
.has-error input,
.has-error textarea,
.has-error select{background-color:#F2DEDE;}
.has-success input,
.has-success textarea,
.has-success select{background-color:#DFF0D8}

以上所述是小编给大家介绍的Bootstrap的 popover插件实现校验表单提示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js弹出层之1:JQuery.Boxy (二)
Oct 06 Javascript
基于JQuery的一句话搞定手风琴菜单
Sep 14 Javascript
Jquery获取和修改img的src值的方法
Feb 17 Javascript
js实现网页自动刷新可制作节日倒计时效果
May 27 Javascript
js实现汉字排序的方法
Jul 23 Javascript
基于jquery实现可定制的web在线富文本编辑器附源码下载
Nov 17 Javascript
分析js闭包引起的事件注册问题
Mar 29 Javascript
vue,angular,avalon这三种MVVM框架优缺点
Apr 27 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
vue引用js文件的多种方式(推荐)
May 17 Javascript
Vue.directive 实现元素scroll逻辑复用
Nov 29 Javascript
深入理解React中es6创建组件this的方法
Aug 29 #Javascript
Ionic默认的Tabs模板使用实例
Aug 29 #Javascript
关于Javascript回调函数的一个妙用
Aug 29 #Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 #Javascript
利用jQuery的动画函数animate实现豌豆发射效果
Aug 28 #Javascript
教你如何在Node.js中使用jQuery
Aug 28 #Javascript
分享JavaScript监听全部Ajax请求事件的方法
Aug 28 #Javascript
You might like
深入解析php中的foreach问题
2013/06/30 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
Laravel 实现关系模型取出需要的字段
2019/10/10 PHP
JS实现商品倒计时实现代码
2013/05/03 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
Vue.js实现简单ToDoList 前期准备(一)
2016/12/01 Javascript
Angular 4依赖注入学习教程之ValueProvider的使用(七)
2017/06/04 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
微信小程序的tab选项卡的实现效果
2019/05/15 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
python实现挑选出来100以内的质数
2015/03/24 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
Python itertools.product方法代码实例
2020/03/27 Python
python selenium xpath定位操作
2020/09/01 Python
Python内置函数及功能简介汇总
2020/10/13 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
商场拾金不昧表扬信
2014/01/13 职场文书
卖房授权委托书样本
2014/10/05 职场文书
2014年村计划生育工作总结
2014/11/14 职场文书
保安2014年终工作总结
2014/12/06 职场文书
先进工作者推荐材料
2014/12/23 职场文书
《风不能把阳光打败》读后感3篇
2020/01/06 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js