妙用Bootstrap的 popover插件实现校验表单提示功能

 更新时间:2016年08月29日 09:41:28   投稿:mrr  
最近使用bootstrap开发项目比较多,在表单校验功能中用popover插件实现出错提示功能很方面,下面小编给大家带来了一篇关于Bootstrap的 popover插件实现校验表单提示功能的实现代码,非常不错,感兴趣的朋友一起看看吧

最近的项目,用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="准考证号码不正确,仅能包含数字"

最终实现的效果如下:

插件代码如下:

"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插件实现校验表单提示功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 原生JS实现图片轮播切换效果

    原生JS实现图片轮播切换效果

    这篇文章主要为大家详细介绍了原生JS实现图片轮播切换效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • JavaScript函数的4种调用方法实例分析

    JavaScript函数的4种调用方法实例分析

    这篇文章主要介绍了JavaScript函数的4种调用方法,结合实例形式总结分析了javascript函数调用常见操作技巧与注意事项,需要的朋友可以参考下
    2019-03-03
  • JavaScript 中创建私有成员

    JavaScript 中创建私有成员

    这篇文章主要介绍了JavaScript 中创建私有成员,下面介绍以 # 作为前缀几种在 JavaScript 代码中实现私有属性和方法的方式,需要的小伙伴可以参考一下
    2021-12-12
  • JavaScript prototype属性使用说明

    JavaScript prototype属性使用说明

    prototype 是在 IE 4 及其以后版本引入的一个针对于某一类的对象的方法,而且特殊的地方便在于:它是一个给类的对象添加方法的方法!
    2010-05-05
  • 浅谈JavaScript 覆盖原型以及更改原型

    浅谈JavaScript 覆盖原型以及更改原型

    下面小编就为大家带来一篇浅谈JavaScript 覆盖原型以及更改原型。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随过来看看吧
    2016-08-08
  • JavaScript数组操作学习之splice()函数入门与精通

    JavaScript数组操作学习之splice()函数入门与精通

    这篇文章介绍了JavaScript数组操作中的splice()方法,详细讲解了其定义、语法和用法,并通过实例展示了如何使用该方法进行数组元素的添加、删除和替换,需要的朋友可以参考下
    2024-11-11
  • javascript 一段代码引发的思考

    javascript 一段代码引发的思考

    写在前面:这是一个关于Ext, Prototype, JavaScript方面的问题,其实下面遇到的问题本不是问题,都是因为错误的理解造成的,本文的宗旨是希望读者朋友避免我犯的同类错误,遇事三思而后行,同时也体会下发现问题,解决问题,反思问题这种精神活动所带来的快乐!
    2009-01-01
  • TypeScript使用axios库进行高效的网页数据抓取

    TypeScript使用axios库进行高效的网页数据抓取

    在当今的互联网时代,数据已成为企业最宝贵的资产之一,无论是社交媒体分析、市场趋势预测还是用户行为研究,高效地获取和处理网页数据都是至关重要的,本文将通过访问抖音平台的案例,介绍如何在TypeScript中使用axios库进行高效的网页数据抓取
    2024-08-08
  • wow.js实现炫酷的页面滚动伴随动画示例详解

    wow.js实现炫酷的页面滚动伴随动画示例详解

    这篇文章主要为大家介绍了wow.js实现炫酷的页面滚动伴随动画示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • [HTML/CSS/Javascript]WWTJS

    [HTML/CSS/Javascript]WWTJS

    [HTML/CSS/Javascript]WWTJS...
    2007-09-09

最新评论