妙用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 相关文章推荐
基本jquery的控制tabs打开的数量的代码
Oct 17 Javascript
用js实现小球的自由移动代码
Apr 22 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
详解利用jsx写vue组件的方法示例
Jul 17 Javascript
详解基于vue-router的动态权限控制实现方案
Sep 28 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
Nov 20 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
Jul 12 Javascript
Vue-cli 移动端布局和动画使用详解
Aug 10 Javascript
vue/cli 配置动态代理无需重启服务的方法
May 20 Vue.js
深入理解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 getimagesize 上传图片的长度和宽度检测代码
2010/05/15 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
PHP在linux上执行外部命令的方法
2017/02/06 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
索趣科技的答案
2007/02/07 Javascript
两种简单实现菜单高亮显示的JS类代码
2010/06/27 Javascript
原生js写的放大镜效果
2012/08/22 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
轻松创建nodejs服务器(7):阻塞操作的实现
2014/12/18 NodeJs
JS实现带有3D立体感的银灰色竖排折叠菜单代码
2015/10/20 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
2016/04/26 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
详解python中的线程
2018/02/10 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
Django模型修改及数据迁移实现解析
2019/08/01 Python
机电一体化自荐信
2013/12/10 职场文书
《第一朵杏花》教学反思
2014/04/16 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
十八大观后感
2015/06/12 职场文书
通讯稿格式及范文
2015/07/22 职场文书
护理专业毕业自我鉴定
2019/08/12 职场文书
php字符串倒叙
2021/04/01 PHP
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
详解Js模块化的作用原理和方案
2021/04/29 Javascript