妙用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 相关文章推荐
发现的以前不知道的函数
Sep 19 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
Apr 07 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
jquery中的$(document).ready()使用小结
Feb 14 Javascript
js滚轮事件兼容性问题需要注意哪些
Nov 15 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
Nov 21 Javascript
微信小程序左滑删除效果的实现代码
Feb 20 Javascript
ECMAScript6--解构
Mar 30 Javascript
详解vue + vuex + directives实现权限按钮的思路
Oct 24 Javascript
网页爬虫之cookie自动获取及过期自动更新的实现方法
Mar 06 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 Javascript
原生javascript制作的拼图游戏实现方法详解
Feb 23 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 Http_Template_IT类库进行模板替换
2009/03/19 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP执行普通shell命令流程解析
2020/08/24 PHP
基于jQuery的history历史记录插件
2010/12/11 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
JavaScript 继承详解(六)
2016/10/11 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
2016/11/07 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
2017/06/04 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
解决Vue中mounted钩子函数获取节点高度出错问题
2018/05/18 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
vue组件之间通信实例总结(点赞功能)
2018/12/05 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
python爬虫实战之爬取京东商城实例教程
2017/04/24 Python
Python+tkinter使用80行代码实现一个计算器实例
2018/01/16 Python
Python3 关于pycharm自动导入包快捷设置的方法
2019/01/16 Python
Python批量生成特定尺寸图片及图画任意文字的实例
2019/01/30 Python
Python3多目标赋值及共享引用注意事项
2019/05/27 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
NYX Professional Makeup官方网站:专业彩妆和美容产品
2019/10/29 全球购物
《美丽的公鸡》教学反思
2014/02/25 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
2015年底工作总结范文
2015/05/15 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
java版 简单三子棋游戏
2022/05/04 Java/Android