www.gusucode.com > baigo CMS PHP开源网站管理系统 v1.2.2源码程序 > baigocms_v1.2.2/bg_static/js/baigoClear/baigoClear.js

    /*
v1.0 jQuery baigoClear plugin 表单 ajax 清理插件
(c) 2013 baigo studio - http://www.baigo.net/
License: http://www.opensource.org/licenses/mit-license.php
*/
(function($) {
    $.fn.baigoClear = function(options) {
        "use strict";
        if (this.length < 1) {
            return this;
        }
        // support mutltiple elements
        if (this.length > 1) {
            this.each(function() {
                $(this).baigoClear(options);
            });
            return this;
        }
        var thisForm = $(this); //定义表单对象
        var el = this;
        var defaults = {
            box_selector: ".baigoClear",
            msg_selector: ".baigoClearMsg",
            msg_loading: "Loading...",
            msg_complete: "Complete"
        };
        var opts = $.extend(defaults, options);
        var appendMsg = function(_status, _msg) {
            $(opts.msg_selector).empty();
            var _str_msg = "<div class=\"alert alert-" + _status + "\">" + _msg + "</div>";
            $(opts.msg_selector).html(_str_msg);
        };
            //确认消息
        var clearConfirm = function() {
            if (typeof opts.confirm_selector == "undefined") {
                return true;
            } else {
                var _form_action = $(opts.confirm_selector).val();
                if (_form_action == opts.confirm_val) {
                    if (confirm(opts.confirm_msg)) {
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    return true;
                }
            }
        };
        var _count = 0;
        var clearAjax = function(_page, _last) {
            //alert(_page);
            var formData = $(thisForm).serializeArray();
            formData.push({
                name: "page",
                value: _page
            });
            formData.push({
                name: "last",
                value: _last
            });
            $.ajax({
                url: opts.ajax_url,
                //url
                //async: false, //设置为同步
                type: "post",
                dataType: "json",
                //数据格式为json
                data: formData,
                beforeSend: function(){
                    appendMsg("info", opts.msg_loading);
                }, //输出消息
                success: function(_result) { //读取返回结果
                    if (_count < 1) {
                        _count = _result.count;
                    }
                    var _width = parseInt(_page / _count * 100 + "%");
                    if (_width > 100) {
                        _width = 100;
                    }
                    switch (_result.status) {
                        case "err":
                            appendMsg("danger", _result.msg);
                            _count  = 0;
                            _page   = 1;
                        break;
                        default:
                            if (_page <= _count) {
                                appendMsg("info", opts.msg_loading);
                                $(opts.box_selector + " .progress-bar").text(_width + "%");
                                $(opts.box_selector + " .progress-bar").css("min-width", "20%");
                                $(opts.box_selector + " .progress-bar").css("width", _width + "%");
                                clearAjax(_page, _result.last);
                            } else {
                                appendMsg("success", opts.msg_complete);
                                $(opts.box_selector + " .progress-bar").text("100%");
                                $(opts.box_selector + " .progress-bar").css("width", "100%");
                                $(opts.box_selector + " .progress-bar").attr("class", "progress-bar progress-bar-success");
                                _count = 0;
                                _page = 1;
                            }
                        break;
                    }
                }
            });
            _page++;
        };
        //ajax提交
        el.clearSubmit = function() {
            if (clearConfirm()) {
                clearAjax(1, 0);
            }
        };
        return this;
    };
})(jQuery);