妙用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 相关文章推荐
javascript之大字符串的连接的StringBuffer 类
May 08 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
JQuery文字列表向上滚动的代码
Nov 13 Javascript
js解析json读取List中的实体对象示例
Mar 11 Javascript
js设置document.domain实现跨域的注意点分析
May 21 Javascript
JS转换HTML转义符的方法
Aug 24 Javascript
AngularJS入门教程之与服务器(Ajax)交互操作示例【附完整demo源码下载】
Nov 02 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
Vue.js实现网格列表布局转换方法
Aug 25 Javascript
webpack 打包压缩js和css的方法示例
Mar 20 Javascript
vue 循环加载数据并获取第一条记录的方法
Sep 26 Javascript
vue中引入mxGraph的步骤详解
May 17 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字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
PHP中Static(静态)关键字功能与用法实例分析
2019/04/05 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
javascript基础知识大全 便于大家学习,也便于我自己查看
2012/08/17 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
form.submit()不能提交表单的原因分析
2014/10/23 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
jQuery 调用WebService 实例讲解
2016/06/28 Javascript
js遍历map javaScript遍历map的简单实现
2016/08/26 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
2017/11/01 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
通过微信公众平台获取公众号文章的方法示例
2019/12/25 Javascript
python对数组进行反转的方法
2015/05/20 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
Python三维绘图之Matplotlib库的使用方法
2020/09/20 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
巴西在线鞋店:Shoestock
2017/10/28 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
小学教师先进事迹材料
2014/12/15 职场文书
故意伤害罪辩护词
2015/05/21 职场文书
高中班长竞选稿
2015/11/20 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
Python爬虫实战之爬取携程评论
2021/06/02 Python
Django中celery的使用项目实例
2022/07/07 Python