妙用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闭包 实例分析
Dec 25 Javascript
javascript计算星座属相(十二生肖属相)示例代码
Jan 09 Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 Javascript
Boostrap入门准备之border box
May 09 Javascript
jquery实现网页定位导航
Aug 23 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
Dec 01 Javascript
微信小程序日期时间选择器使用方法
Feb 01 Javascript
vue-cli项目配置多环境的详细操作过程
Oct 30 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
JS实现商城秒杀倒计时功能(动态设置秒杀时间)
Dec 12 Javascript
js实现div色块拖动录制
Jan 16 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 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 Smarty初体验二 获取配置信息
2011/08/08 PHP
深入PHP中的HashTable结构详解
2013/06/13 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
php判断访问IP的方法
2015/06/19 PHP
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
js实现的GridView即表头固定表体有滚动条且可滚动
2014/02/19 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
jQuery中parents()方法用法实例
2015/01/07 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
使用JS实现图片轮播的实例(前后首尾相接)
2017/09/21 Javascript
Angular入口组件(entry component)与声明式组件的区别详解
2018/04/09 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
在微信小程序中使用图表的方法示例
2019/04/25 Javascript
[01:19:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第二局
2016/03/05 DOTA
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
Python实现的计算器功能示例
2018/04/26 Python
Python登录注册验证功能实现
2018/06/18 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
python验证码图片处理(二值化)
2019/11/01 Python
Django 项目布局方法(值得推荐)
2020/03/22 Python
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
教师查摆问题及整改措施
2014/10/11 职场文书
车间主任岗位职责范本
2015/04/08 职场文书
python3使用diagrams绘制架构图的步骤
2021/04/08 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python