ajaxResult.js 1.66 KB
(function ($) {

    var formElemDisabled = function (elem, disabled) {
        $(elem).find('input,select,textarea,button').each(function () {
            if (disabled) {
                $(this).attr('disabled', 'disabled');
            } else {
                $(this).removeAttr('disabled');
            }
        });
    };

    var formAjaxSubmit = function (_this, callback) {
        var action = $(_this).attr("action");
        var method = $(_this).attr("method");
        var data = $(_this).serializeArray();
        formElemDisabled(_this, true);
        $.ajax({
            url: action,
            type: method,
            data: data,
            dataType: "json",
            success: function (result) {
                if (result.success) {
                    if (callback) {
                        callback();
                    }
                } else {
                    alert(result.message);
                }
                formElemDisabled(_this, false);
            },
            error: function () {
                alert('网络异常,请稍后再试!');
                formElemDisabled(_this, false);
            }
        });
    };

    /**
     * 使用方式:
     *  $("#addAdmin").ajaxCommit(function (){
     *     alert('增加管理员成功!');
     *     window.location = "${webUtils.getManageLocalPath("admin/list")}";
     *  });
     * @param callback
     */
    $.fn.ajaxCommit = function (callback) {
        $(this).submit(function () {
            formAjaxSubmit(this, callback);
            return false;
        });
    };
    
    $.fn.ajaxSubmit = function (callback) {
    	formAjaxSubmit(this, callback);
    };

})(jQuery);