做个用户管理系统(17)——注册功能的实现(二)【20201203】

发表于 2020-12-03 21:24:09
阅读 61

介绍

介绍

今天我们继续开发注册功能,今天主要完成的是表单处理时候的错误提示的处理的技巧。错误处理福哥上一课已经决定了使用tips提示框来实现,tips提示框的特点就是它会在屏幕中间显示一个黑色的框框,里面是白色的错误提示文字,这个提示框会在几秒钟后自动消失掉。

要实现这个功能很显然需要使用JS程序来完成,福哥使用jQuery的控件封装技术开发了一个tips控件,专门用来处理tips提示框的。

Tips控件

代码

(function ($) {
    var myTips = {
        prt : null,
        tips : null,
        opts : null,

        start : function(){
            var ex=this;

            tips = $(document.createElement('div'));
            tips.css({display:"block",position:"fixed",top:'35%',left:'50%',zIndex:9999,background:'#333',color:'#fff',padding:'6px 8px',borderRadius:'5%'});
            tips.appendTo(this.prt);
            tips.text(this.opts.text);
            tips.css({marginLeft:-1*(tips.width()/2)});
            setTimeout(function () {
                ex.stop();
            }, this.opts.timeout);
        },

        stop : function(){
            tips.remove();
        },

        init : function (prt, opts) {
            if(!opts instanceof Object){
                opts = {};
            }
            if(!opts.timeout){
                opts.timeout = 1500;
            }
            this.prt = $(prt);
            this.opts = opts;
        }
    };
    myTips.init.prototype = myTips;

    $.fn.tips=function (options) {
        var my = new myTips.init(this, options);
        my.start();
    };
})(jQuery);

注册表单

注册表单的JS比较简单,福哥写了一个基础的版本,以后再慢慢完善吧。这个表单控件增加了对注册表单的表单项的输入数据的验证规则,并且在处理失败的时候使用了tips控件显示错误信息,并且会将光标聚焦到数据错误的表单项上面。

JS代码

// form
$('form').form({
    url: "api/member/register",
    method: "post",
    validations: [
        {type:"empty", name:"user", msg:"请填写用户名"},
        {type:"min", value:2, name:"user", msg:"用户名最少2个字"},
        {type:"max", value:20, name:"user", msg:"用户名最多20个字"},
        {type:"re", value:/^[^\`\~\!\@\#\$\%\^\&\*\(\)\[\]\{\}\-\_\+\|\\\:\;\"\'\<\>\,\.\?\/]/, name:"user", msg:"用户名不能以符号开头"},
        {type:"empty", name:"pass", msg:"请填写密码"},
        {type:"min", value:6, name:"pass", msg:"密码最少6个字"},
        {type:"empty", name:"confirmPass", msg:"请填写确认密码"}
    ],
    onSuccess: function (d) {
        if(d.errcode == 0){

        }
        else{
            $('form').tips({
                text:d.errmsg
            });
        }
    },
    onError: function (d) {console.log(d);
        $('form').tips({
            text:"服务器响应错误"
        });
    },
    onValidationError: function (form, name, msg) {
        $('form').tips({
            text:msg
        });
        $('form').find('[name="'+ name +'"]').focus();
    }
});

431912b5924ce461.jpg

总结

今天福哥带着童鞋们完成了jQuery控件tips的开发以及将tips控件投入到注册表单的错误处理上面。可以看到要实现一个含有表单的网页需要学习的东西还是很多的。不过,有些东西也可以使用别人弄好的开源代码来实现,比如福哥开发的tips控件就有很多现成的代码可以使用。但是,作为一个学习的人来说,有机会尝试自己开发还是需要积极地锻炼锻炼,毕竟实践的经验是很宝贵的~~

下一课我们继续开发注册页面,下一课就直奔主题了,完成注册功能的接口控制器api/member/register,就可以完成注册功能了