| 
/** 
 | 
 * 与表单相关的方法 
 | 
 *  
 | 
 * @author 姜友瑶 
 | 
 */ 
 | 
  
 | 
// 公用的form对象 
 | 
var MForm = function() { 
 | 
    "use strict";// 严格模式 
 | 
  
 | 
    return { 
 | 
  
 | 
        /** 
 | 
         * 表单提交前,初始化一些必要的事情 
 | 
         */ 
 | 
        initForm : function(_initParam) { 
 | 
  
 | 
            var option = { 
 | 
                beforeSubmit : null,// 表单提交之前调用函数 
 | 
                afterSubmit : null,// 刷新数据回调函数 
 | 
                formSelecter : "#dataform",// 表单默认选择器 
 | 
                isvalid : true,// 是否对表单进行验证 
 | 
                validform : null,// 验证表单 
 | 
                extendParam : {},// 需要添加到表单中的额外参数会一起提交到服务器 
 | 
                invokeUrl : "",// 数据提交地址 
 | 
                layerIndex : "",// layer当前窗口的index值(用来关闭ifram) 
 | 
                isAutoClose : true,// 是否自动关闭 
 | 
            } 
 | 
            option = $.extend(option, _initParam); 
 | 
            var mForm = new mform(option); 
 | 
            return mForm; 
 | 
        }, 
 | 
  
 | 
        /** 
 | 
         * form表单数据转json 
 | 
         */ 
 | 
        toJson : function(form) { 
 | 
            var result = {}; 
 | 
            var fieldArray = $(form).serializeArray(); 
 | 
            for (var i = 0; i < fieldArray.length; i++) { 
 | 
                var field = fieldArray[i]; 
 | 
                if (field.name in result) { 
 | 
                    result[field.name] += "," + field.value; 
 | 
                } else { 
 | 
                    result[field.name] = field.value; 
 | 
                } 
 | 
            } 
 | 
            return result; 
 | 
        }, 
 | 
        /** 
 | 
         * form表单数据转url参数 
 | 
         */ 
 | 
        toUrlParam : function(form) { 
 | 
            var result = ""; 
 | 
            var fieldArray = $(form).serializeArray(); 
 | 
            for (var i = 0; i < fieldArray.length; i++) { 
 | 
                var field = fieldArray[i]; 
 | 
                if(field.value){ 
 | 
                    result+=field.name+"="+field.value+"&"; 
 | 
                } 
 | 
            } 
 | 
            return result; 
 | 
        }, 
 | 
        /** 
 | 
         * 重置表单 
 | 
         */ 
 | 
        reset : function clear_form(formId) { 
 | 
            $(':input', formId).not(':button, :submit, :reset, :hidden') 
 | 
                    .val('').removeAttr('value').removeAttr('checked') 
 | 
                    .removeAttr('selected'); 
 | 
            $(".select2", formId).val("").trigger("change"); 
 | 
        } 
 | 
  
 | 
    } 
 | 
}(); 
 | 
  
 | 
// 私有form表单对象 
 | 
function mform(option) { 
 | 
  
 | 
    this.initParam = option; 
 | 
    // 对表单进验证 
 | 
    if (this.initParam.isvalid) { 
 | 
        this.initParam.validform = MValidform 
 | 
                .validform(this.initParam.formSelecter); 
 | 
    } 
 | 
  
 | 
    if (parent.layer.getFrameIndex) { 
 | 
        this.initParam.layerIndex = parent.layer.getFrameIndex(window.name); 
 | 
    } 
 | 
  
 | 
    // 提交表单数据 
 | 
    this.submit = function() { 
 | 
        var _this = this; 
 | 
  
 | 
        // 验证表单 
 | 
        if (this.initParam.isvalid) { 
 | 
            if (!this.initParam.validform.check()) { 
 | 
                return false; 
 | 
            } 
 | 
        } 
 | 
        // 调用beforesubmit 
 | 
        if (this.initParam.beforeSubmit) { 
 | 
            if (this.initParam.beforeSubmit() == false) { 
 | 
                return; 
 | 
            } 
 | 
        } 
 | 
  
 | 
        // 提交表单数据 
 | 
        $.AjaxProxy( 
 | 
                { 
 | 
                    p : $.extend(MForm.toJson(_this.initParam.formSelecter), 
 | 
                            _this.initParam.extendParam) 
 | 
  
 | 
                }).invoke( 
 | 
                _this.initParam.invokeUrl, 
 | 
                function(loj) { 
 | 
                    if (layer.alert) { 
 | 
                        // 执行成功弹出提示层 
 | 
                        layer.msg(loj.getValue("info"), { 
 | 
                            icon : 1, 
 | 
                            time : 1000 
 | 
                        }, function(inindex) { 
 | 
                            // 关闭提示层 
 | 
                            layer.close(inindex); 
 | 
                            // 自定义刷新回调 
 | 
                            if (_this.initParam.afterSubmit) { 
 | 
                                _this.initParam.afterSubmit(loj); 
 | 
                            } 
 | 
                            // 关闭iframe层 
 | 
                            if (_this.initParam.isAutoClose 
 | 
                                    && _this.initParam.layerIndex) { 
 | 
                                parent.layer.close(_this.initParam.layerIndex); 
 | 
                            } 
 | 
                        }); 
 | 
                        return; 
 | 
                    } else { 
 | 
                        // 自定义刷新回调 
 | 
                        if (_this.initParam.afterSubmit) { 
 | 
                            _this.initParam.afterSubmit(loj); 
 | 
                        } 
 | 
                    } 
 | 
                }); 
 | 
    }; 
 | 
    return this; 
 | 
} 
 |