/** * 用来提交整个表单的JQUERY插件 * 作者及API查询:http://www.malsup.com/jquery/form/ */ (function($){ $.fn.ajaxSubmit=function(_2){ if(!this.length){ log("ajaxSubmit: skipping submit process - no element selected"); return this; } if(typeof _2=="function"){ _2={success:_2}; } _2=$.extend({url:this.attr("action")||window.location.toString(),type:this.attr("method")||"GET"},_2||{}); var _3={}; this.trigger("form-pre-serialize",[this,_2,_3]); if(_3.veto){ log("ajaxSubmit: submit vetoed via form-pre-serialize trigger"); return this; } var a=this.formToArray(_2.semantic); if(_2.data){ _2.extraData=_2.data; for(var n in _2.data){ a.push({name:n,value:_2.data[n]}); } } if(_2.beforeSubmit&&_2.beforeSubmit(a,this,_2)===false){ log("ajaxSubmit: submit aborted via beforeSubmit callback"); return this; } this.trigger("form-submit-validate",[a,this,_2,_3]); if(_3.veto){ log("ajaxSubmit: submit vetoed via form-submit-validate trigger"); return this; } var q=$.param(a); if(_2.type.toUpperCase()=="GET"){ _2.url+=(_2.url.indexOf("?")>=0?"&":"?")+q; _2.data=null; }else{ _2.data=q; } var _7=this,_8=[]; if(_2.resetForm){ _8.push(function(){ _7.resetForm(); }); } if(_2.clearForm){ _8.push(function(){ _7.clearForm(); }); } if(!_2.dataType&&_2.target){ var _9=_2.success||function(){ }; _8.push(function(_a){ $(_2.target).html(_a).each(_9,arguments); }); }else{ if(_2.success){ _8.push(_2.success); } } _2.success=function(_b,_c){ for(var i=0,_e=_8.length;i<_e;i++){ _8[i](_b,_c,_7); } }; var _f=$("input:file",this).fieldValue(); var _10=false; for(var j=0;j<_f.length;j++){ if(_f[j]){ _10=true; } } if(_2.iframe||_10){ if($.browser.safari&&_2.closeKeepAlive){ $.get(_2.closeKeepAlive,fileUpload); }else{ fileUpload(); } }else{ $.ajax(_2); } this.trigger("form-submit-notify",[this,_2]); return this; function fileUpload(){ var _12=_7[0]; if($(":input[@name=submit]",_12).length){ alert("Error: Form elements must not be named \"submit\"."); return; } var _13=$.extend({},$.ajaxSettings,_2); var id="jqFormIO"+(new Date().getTime()); var $io=$("