|   | 
| /** | 
|  * 与表单相关的方法 | 
|  *  | 
|  * @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; | 
| } |