123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- /**
- * jQuery EasyUI 1.4.4
- *
- * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
- *
- * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
- * To use it on other terms please contact us: info@jeasyui.com
- *
- */
- (function($){
- function _1(_2,_3){
- var _4=$.data(_2,"form").options;
- $.extend(_4,_3||{});
- var _5=$.extend({},_4.queryParams);
- if(_4.onSubmit.call(_2,_5)==false){
- return;
- }
- $(_2).find(".textbox-text:focus").blur();
- var _6="easyui_frame_"+(new Date().getTime());
- var _7=$("<iframe id="+_6+" name="+_6+"></iframe>").appendTo("body");
- _7.attr("src",window.ActiveXObject?"javascript:false":"about:blank");
- _7.css({position:"absolute",top:-1000,left:-1000});
- _7.bind("load",cb);
- _8(_5);
- function _8(_9){
- var _a=$(_2);
- if(_4.url){
- _a.attr("action",_4.url);
- }
- var t=_a.attr("target"),a=_a.attr("action");
- _a.attr("target",_6);
- var _b=$();
- try{
- for(var n in _9){
- var _c=$("<input type=\"hidden\" name=\""+n+"\">").val(_9[n]).appendTo(_a);
- _b=_b.add(_c);
- }
- _d();
- _a[0].submit();
- }
- finally{
- _a.attr("action",a);
- t?_a.attr("target",t):_a.removeAttr("target");
- _b.remove();
- }
- };
- function _d(){
- var f=$("#"+_6);
- if(!f.length){
- return;
- }
- try{
- var s=f.contents()[0].readyState;
- if(s&&s.toLowerCase()=="uninitialized"){
- setTimeout(_d,100);
- }
- }
- catch(e){
- cb();
- }
- };
- var _e=10;
- function cb(){
- var f=$("#"+_6);
- if(!f.length){
- return;
- }
- f.unbind();
- var _f="";
- try{
- var _10=f.contents().find("body");
- _f=_10.html();
- if(_f==""){
- if(--_e){
- setTimeout(cb,100);
- return;
- }
- }
- var ta=_10.find(">textarea");
- if(ta.length){
- _f=ta.val();
- }else{
- var pre=_10.find(">pre");
- if(pre.length){
- _f=pre.html();
- }
- }
- }
- catch(e){
- }
- _4.success(_f);
- setTimeout(function(){
- f.unbind();
- f.remove();
- },100);
- };
- };
- function _11(_12,_13){
- var _14=$.data(_12,"form").options;
- if(typeof _13=="string"){
- var _15={};
- if(_14.onBeforeLoad.call(_12,_15)==false){
- return;
- }
- $.ajax({url:_13,data:_15,dataType:"json",success:function(_16){
- _17(_16);
- },error:function(){
- _14.onLoadError.apply(_12,arguments);
- }});
- }else{
- _17(_13);
- }
- function _17(_18){
- var _19=$(_12);
- for(var _1a in _18){
- var val=_18[_1a];
- if(!_1b(_1a,val)){
- if(!_1c(_1a,val)){
- _19.find("input[name=\""+_1a+"\"]").val(val);
- _19.find("textarea[name=\""+_1a+"\"]").val(val);
- _19.find("select[name=\""+_1a+"\"]").val(val);
- }
- }
- }
- _14.onLoadSuccess.call(_12,_18);
- _19.form("validate");
- };
- function _1b(_1d,val){
- var cc=$(_12).find("[switchbuttonName=\""+_1d+"\"]");
- if(cc.length){
- cc.switchbutton("uncheck");
- cc.each(function(){
- if(_1e($(this).switchbutton("options").value,val)){
- $(this).switchbutton("check");
- }
- });
- return true;
- }
- cc=$(_12).find("input[name=\""+_1d+"\"][type=radio], input[name=\""+_1d+"\"][type=checkbox]");
- if(cc.length){
- cc._propAttr("checked",false);
- cc.each(function(){
- if(_1e($(this).val(),val)){
- $(this)._propAttr("checked",true);
- }
- });
- return true;
- }
- return false;
- };
- function _1e(v,val){
- if(v==String(val)||$.inArray(v,$.isArray(val)?val:[val])>=0){
- return true;
- }else{
- return false;
- }
- };
- function _1c(_1f,val){
- var _20=$(_12).find("[textboxName=\""+_1f+"\"],[sliderName=\""+_1f+"\"]");
- if(_20.length){
- for(var i=0;i<_14.fieldTypes.length;i++){
- var _21=_14.fieldTypes[i];
- var _22=_20.data(_21);
- if(_22){
- if(_22.options.multiple||_22.options.range){
- _20[_21]("setValues",val);
- }else{
- _20[_21]("setValue",val);
- }
- return true;
- }
- }
- }
- return false;
- };
- };
- function _23(_24){
- $("input,select,textarea",_24).each(function(){
- var t=this.type,tag=this.tagName.toLowerCase();
- if(t=="text"||t=="hidden"||t=="password"||tag=="textarea"){
- this.value="";
- }else{
- if(t=="file"){
- var _25=$(this);
- if(!_25.hasClass("textbox-value")){
- var _26=_25.clone().val("");
- _26.insertAfter(_25);
- if(_25.data("validatebox")){
- _25.validatebox("destroy");
- _26.validatebox();
- }else{
- _25.remove();
- }
- }
- }else{
- if(t=="checkbox"||t=="radio"){
- this.checked=false;
- }else{
- if(tag=="select"){
- this.selectedIndex=-1;
- }
- }
- }
- }
- });
- var _27=$(_24);
- var _28=$.data(_24,"form").options;
- for(var i=_28.fieldTypes.length-1;i>=0;i--){
- var _29=_28.fieldTypes[i];
- var _2a=_27.find("."+_29+"-f");
- if(_2a.length&&_2a[_29]){
- _2a[_29]("clear");
- }
- }
- _27.form("validate");
- };
- function _2b(_2c){
- _2c.reset();
- var _2d=$(_2c);
- var _2e=$.data(_2c,"form").options;
- for(var i=_2e.fieldTypes.length-1;i>=0;i--){
- var _2f=_2e.fieldTypes[i];
- var _30=_2d.find("."+_2f+"-f");
- if(_30.length&&_30[_2f]){
- _30[_2f]("reset");
- }
- }
- _2d.form("validate");
- };
- function _31(_32){
- var _33=$.data(_32,"form").options;
- $(_32).unbind(".form");
- if(_33.ajax){
- $(_32).bind("submit.form",function(){
- setTimeout(function(){
- _1(_32,_33);
- },0);
- return false;
- });
- }
- $(_32).bind("_change.form",function(e,t){
- _33.onChange.call(this,t);
- }).bind("change.form",function(e){
- var t=e.target;
- if(!$(t).hasClass("textbox-text")){
- _33.onChange.call(this,t);
- }
- });
- _34(_32,_33.novalidate);
- };
- function _35(_36,_37){
- _37=_37||{};
- var _38=$.data(_36,"form");
- if(_38){
- $.extend(_38.options,_37);
- }else{
- $.data(_36,"form",{options:$.extend({},$.fn.form.defaults,$.fn.form.parseOptions(_36),_37)});
- }
- };
- function _39(_3a){
- if($.fn.validatebox){
- var t=$(_3a);
- t.find(".validatebox-text:not(:disabled)").validatebox("validate");
- var _3b=t.find(".validatebox-invalid");
- _3b.filter(":not(:disabled):first").focus();
- return _3b.length==0;
- }
- return true;
- };
- function _34(_3c,_3d){
- var _3e=$.data(_3c,"form").options;
- _3e.novalidate=_3d;
- $(_3c).find(".validatebox-text:not(:disabled)").validatebox(_3d?"disableValidation":"enableValidation");
- };
- $.fn.form=function(_3f,_40){
- if(typeof _3f=="string"){
- this.each(function(){
- _35(this);
- });
- return $.fn.form.methods[_3f](this,_40);
- }
- return this.each(function(){
- _35(this,_3f);
- _31(this);
- });
- };
- $.fn.form.methods={options:function(jq){
- return $.data(jq[0],"form").options;
- },submit:function(jq,_41){
- return jq.each(function(){
- _1(this,_41);
- });
- },load:function(jq,_42){
- return jq.each(function(){
- _11(this,_42);
- });
- },clear:function(jq){
- return jq.each(function(){
- _23(this);
- });
- },reset:function(jq){
- return jq.each(function(){
- _2b(this);
- });
- },validate:function(jq){
- return _39(jq[0]);
- },disableValidation:function(jq){
- return jq.each(function(){
- _34(this,true);
- });
- },enableValidation:function(jq){
- return jq.each(function(){
- _34(this,false);
- });
- }};
- $.fn.form.parseOptions=function(_43){
- var t=$(_43);
- return $.extend({},$.parser.parseOptions(_43,[{ajax:"boolean"}]),{url:(t.attr("action")?t.attr("action"):undefined)});
- };
- $.fn.form.defaults={fieldTypes:["combobox","combotree","combogrid","datetimebox","datebox","combo","datetimespinner","timespinner","numberspinner","spinner","slider","searchbox","numberbox","textbox","switchbutton"],novalidate:false,ajax:true,url:null,queryParams:{},onSubmit:function(_44){
- return $(this).form("validate");
- },success:function(_45){
- },onBeforeLoad:function(_46){
- },onLoadSuccess:function(_47){
- },onLoadError:function(){
- },onChange:function(_48){
- }};
- })(jQuery);
|