资讯专栏INFORMATION COLUMN

巧用 Bootstrap的 popover插件 实现表单校验提示

Corwien / 3006人阅读

摘要:浏览文档,发现插件特别适合做表单校验出错的提示。因为使的非常频繁,最近把它封住下,做成的插件。通过本插件,在标签中定义好校验正则错误信息即可。点击提交时,如果有表单项目不合法,会阻止表单继续提交。最后调整下,就实现了截图的效果。

最近的项目,用Bootstrap比较多。浏览Bootstrap文档,发现 popover 插件特别适合做表单校验出错的提示。

因为使的非常频繁,最近把它封住下,做成 jQuery的插件。 通过 本插件,在 html标签中 定义好 data-vaild="校验正则" data-errmsg="错误信息即可"。为什么 要把 校验规则 写到 html 标签中呢?因为 我还用它做了 后台 的校验规则和提示(后台没用Node,现在用的ASP,忙完专门再发文写下原理)。

演示地址:点击查看演示


最终实现的效果如下:

插件代码如下:

"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);

调用的时候非常简单,直接使用以下代码:


当表单失去焦点时,如果不合法,会直接提示错误。点击提交时,如果有表单项目不合法,会阻止表单继续提交。

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}


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80222.html

相关文章

  • 巧用patternLock开发图案滑屏解锁

    摘要:此外,本例还使用到了相关文件。制作个性化的九宫格图本图将品牌字母融入其中,同时包含了网站三大特色业务借换购。此外,还有个问题。 作者的话: 基于patternLock插件实现九宫格登陆校验功能。其亮点在于摒弃传统校验方式同时融合产品文化。同上一篇文章一样,本次实现功能剥离至本人15年毕设项目《ReBook》。下面介绍主要思路,详情请戳后面源码链接。 效果图: 左侧:九宫格滑动区域,右侧...

    enrecul101 评论0 收藏0
  • 巧用patternLock开发图案滑屏解锁

    摘要:此外,本例还使用到了相关文件。制作个性化的九宫格图本图将品牌字母融入其中,同时包含了网站三大特色业务借换购。此外,还有个问题。 作者的话: 基于patternLock插件实现九宫格登陆校验功能。其亮点在于摒弃传统校验方式同时融合产品文化。同上一篇文章一样,本次实现功能剥离至本人15年毕设项目《ReBook》。下面介绍主要思路,详情请戳后面源码链接。 效果图: 左侧:九宫格滑动区域,右侧...

    Atom 评论0 收藏0
  • 关于BOOTSTRAP整理和理解

    摘要:规范名称定义,便于维护。譬如关于的定义在格式化的中会声明为,而在基本样式的中又可能会声明所以在中会出现多次定义。尽量减少连接数和的大小。基于版本的使用目前使用较广的是版本和,其中的最新版本是的最新版本。 随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验。作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我...

    amc 评论0 收藏0
  • 关于BOOTSTRAP整理和理解

    摘要:规范名称定义,便于维护。譬如关于的定义在格式化的中会声明为,而在基本样式的中又可能会声明所以在中会出现多次定义。尽量减少连接数和的大小。基于版本的使用目前使用较广的是版本和,其中的最新版本是的最新版本。 随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验。作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我...

    Tony_Zby 评论0 收藏0
  • 关于BOOTSTRAP整理和理解

    摘要:规范名称定义,便于维护。譬如关于的定义在格式化的中会声明为,而在基本样式的中又可能会声明所以在中会出现多次定义。尽量减少连接数和的大小。基于版本的使用目前使用较广的是版本和,其中的最新版本是的最新版本。 随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验。作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我...

    zeyu 评论0 收藏0

发表评论

0条评论

Corwien

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<