妙用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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
script标签属性type与language使用选择
Dec 02 Javascript
js实现倒计时时钟的示例代码
Dec 17 Javascript
JavaScript中的操作符==与===介绍
Dec 31 Javascript
jQuery简单自定义图片轮播插件及用法示例
Nov 21 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
Dec 29 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 Javascript
es6中reduce的基本使用方法
Sep 10 Javascript
在vue中使用Echarts画曲线图的示例
Oct 03 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 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
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
ucenter通信原理分析
2015/01/09 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
ThinkPHP中create()方法自动验证表单信息
2017/04/28 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
jQuery文件上传插件Uploadify使用指南
2014/06/05 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
webpack3之loader全解析
2017/10/26 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
angular 服务随记小结
2019/05/06 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
webpack安装配置与常见使用过程详解(结合vue)
2020/06/01 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
python 解压pkl文件的方法
2018/10/25 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
python3 map函数和filter函数详解
2019/08/26 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
2020/12/23 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
巴西Mr. Cat在线商店:购买包包和鞋子
2019/09/08 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
五年级英语教学反思
2014/01/31 职场文书
活动策划求职信模板
2014/04/21 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL