123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386 |
- /**
- * jQuery EasyUI 1.4.1
- *
- * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
- *
- * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
- * To use it on other terms please contact us at info@jeasyui.com
- *
- */
- (function($){
- function _1(_2){
- $(_2).addClass("textbox-f").hide();
- var _3=$("<span class=\"textbox\">"+"<input class=\"textbox-text\" autocomplete=\"off\">"+"<input type=\"hidden\" class=\"textbox-value\">"+"</span>").insertAfter(_2);
- var _4=$(_2).attr("name");
- if(_4){
- _3.find("input.textbox-value").attr("name",_4);
- $(_2).removeAttr("name").attr("textboxName",_4);
- }
- return _3;
- };
- function _5(_6){
- var _7=$.data(_6,"textbox");
- var _8=_7.options;
- var tb=_7.textbox;
- tb.find(".textbox-text").remove();
- if(_8.multiline){
- $("<textarea class=\"textbox-text\" autocomplete=\"off\"></textarea>").prependTo(tb);
- }else{
- $("<input type=\""+_8.type+"\" class=\"textbox-text\" autocomplete=\"off\">").prependTo(tb);
- }
- tb.find(".textbox-addon").remove();
- var bb=_8.icons?$.extend(true,[],_8.icons):[];
- if(_8.iconCls){
- bb.push({iconCls:_8.iconCls,disabled:true});
- }
- if(bb.length){
- var bc=$("<span class=\"textbox-addon\"></span>").prependTo(tb);
- bc.addClass("textbox-addon-"+_8.iconAlign);
- for(var i=0;i<bb.length;i++){
- bc.append("<a href=\"javascript:void(0)\" class=\"textbox-icon "+bb[i].iconCls+"\" icon-index=\""+i+"\" tabindex=\"-1\"></a>");
- }
- }
- tb.find(".textbox-button").remove();
- if(_8.buttonText||_8.buttonIcon){
- var _9=$("<a href=\"javascript:void(0)\" class=\"textbox-button\"></a>").prependTo(tb);
- _9.addClass("textbox-button-"+_8.buttonAlign).linkbutton({text:_8.buttonText,iconCls:_8.buttonIcon});
- }
- _a(_6,_8.disabled);
- _b(_6,_8.readonly);
- };
- function _c(_d){
- var tb=$.data(_d,"textbox").textbox;
- tb.find(".textbox-text").validatebox("destroy");
- tb.remove();
- $(_d).remove();
- };
- function _e(_f,_10){
- var _11=$.data(_f,"textbox");
- var _12=_11.options;
- var tb=_11.textbox;
- var _13=tb.parent();
- if(_10){
- _12.width=_10;
- }
- if(isNaN(parseInt(_12.width))){
- var c=$(_f).clone();
- c.css("visibility","hidden");
- c.insertAfter(_f);
- _12.width=c.outerWidth();
- c.remove();
- }
- tb.appendTo("body");
- var _14=tb.find(".textbox-text");
- var btn=tb.find(".textbox-button");
- var _15=tb.find(".textbox-addon");
- var _16=_15.find(".textbox-icon");
- tb._size(_12,_13);
- btn.linkbutton("resize",{height:tb.height()});
- btn.css({left:(_12.buttonAlign=="left"?0:""),right:(_12.buttonAlign=="right"?0:"")});
- _15.css({left:(_12.iconAlign=="left"?(_12.buttonAlign=="left"?btn._outerWidth():0):""),right:(_12.iconAlign=="right"?(_12.buttonAlign=="right"?btn._outerWidth():0):"")});
- _16.css({width:_12.iconWidth+"px",height:tb.height()+"px"});
- _14.css({paddingLeft:(_f.style.paddingLeft||""),paddingRight:(_f.style.paddingRight||""),marginLeft:_17("left"),marginRight:_17("right")});
- if(_12.multiline){
- _14.css({paddingTop:(_f.style.paddingTop||""),paddingBottom:(_f.style.paddingBottom||"")});
- _14._outerHeight(tb.height());
- }else{
- var _18=Math.floor((tb.height()-_14.height())/2);
- _14.css({paddingTop:_18+"px",paddingBottom:_18+"px"});
- }
- _14._outerWidth(tb.width()-_16.length*_12.iconWidth-btn._outerWidth());
- tb.insertAfter(_f);
- _12.onResize.call(_f,_12.width,_12.height);
- function _17(_19){
- return (_12.iconAlign==_19?_15._outerWidth():0)+(_12.buttonAlign==_19?btn._outerWidth():0);
- };
- };
- function _1a(_1b){
- var _1c=$(_1b).textbox("options");
- var _1d=$(_1b).textbox("textbox");
- _1d.validatebox($.extend({},_1c,{deltaX:$(_1b).textbox("getTipX"),onBeforeValidate:function(){
- var box=$(this);
- if(!box.is(":focus")){
- _1c.oldInputValue=box.val();
- box.val(_1c.value);
- }
- },onValidate:function(_1e){
- var box=$(this);
- if(_1c.oldInputValue!=undefined){
- box.val(_1c.oldInputValue);
- _1c.oldInputValue=undefined;
- }
- var tb=box.parent();
- if(_1e){
- tb.removeClass("textbox-invalid");
- }else{
- tb.addClass("textbox-invalid");
- }
- }}));
- };
- function _1f(_20){
- var _21=$.data(_20,"textbox");
- var _22=_21.options;
- var tb=_21.textbox;
- var _23=tb.find(".textbox-text");
- _23.attr("placeholder",_22.prompt);
- _23.unbind(".textbox");
- if(!_22.disabled&&!_22.readonly){
- _23.bind("blur.textbox",function(e){
- if(!tb.hasClass("textbox-focused")){
- return;
- }
- _22.value=$(this).val();
- if(_22.value==""){
- $(this).val(_22.prompt).addClass("textbox-prompt");
- }else{
- $(this).removeClass("textbox-prompt");
- }
- tb.removeClass("textbox-focused");
- }).bind("focus.textbox",function(e){
- if(tb.hasClass("textbox-focused")){
- return;
- }
- if($(this).val()!=_22.value){
- $(this).val(_22.value);
- }
- $(this).removeClass("textbox-prompt");
- tb.addClass("textbox-focused");
- });
- for(var _24 in _22.inputEvents){
- _23.bind(_24+".textbox",{target:_20},_22.inputEvents[_24]);
- }
- }
- var _25=tb.find(".textbox-addon");
- _25.unbind().bind("click",{target:_20},function(e){
- var _26=$(e.target).closest("a.textbox-icon:not(.textbox-icon-disabled)");
- if(_26.length){
- var _27=parseInt(_26.attr("icon-index"));
- var _28=_22.icons[_27];
- if(_28&&_28.handler){
- _28.handler.call(_26[0],e);
- _22.onClickIcon.call(_20,_27);
- }
- }
- });
- _25.find(".textbox-icon").each(function(_29){
- var _2a=_22.icons[_29];
- var _2b=$(this);
- if(!_2a||_2a.disabled||_22.disabled||_22.readonly){
- _2b.addClass("textbox-icon-disabled");
- }else{
- _2b.removeClass("textbox-icon-disabled");
- }
- });
- var btn=tb.find(".textbox-button");
- btn.unbind(".textbox").bind("click.textbox",function(){
- if(!btn.linkbutton("options").disabled){
- _22.onClickButton.call(_20);
- }
- });
- btn.linkbutton((_22.disabled||_22.readonly)?"disable":"enable");
- tb.unbind(".textbox").bind("_resize.textbox",function(e,_2c){
- if($(this).hasClass("easyui-fluid")||_2c){
- _e(_20);
- }
- return false;
- });
- };
- function _a(_2d,_2e){
- var _2f=$.data(_2d,"textbox");
- var _30=_2f.options;
- var tb=_2f.textbox;
- if(_2e){
- _30.disabled=true;
- $(_2d).attr("disabled","disabled");
- tb.find(".textbox-text,.textbox-value").attr("disabled","disabled");
- }else{
- _30.disabled=false;
- $(_2d).removeAttr("disabled");
- tb.find(".textbox-text,.textbox-value").removeAttr("disabled");
- }
- };
- function _b(_31,_32){
- var _33=$.data(_31,"textbox");
- var _34=_33.options;
- _34.readonly=_32==undefined?true:_32;
- var _35=_33.textbox.find(".textbox-text");
- _35.removeAttr("readonly").removeClass("textbox-text-readonly");
- if(_34.readonly||!_34.editable){
- _35.attr("readonly","readonly").addClass("textbox-text-readonly");
- }
- };
- $.fn.textbox=function(_36,_37){
- if(typeof _36=="string"){
- var _38=$.fn.textbox.methods[_36];
- if(_38){
- return _38(this,_37);
- }else{
- return this.each(function(){
- var _39=$(this).textbox("textbox");
- _39.validatebox(_36,_37);
- });
- }
- }
- _36=_36||{};
- return this.each(function(){
- var _3a=$.data(this,"textbox");
- if(_3a){
- $.extend(_3a.options,_36);
- if(_36.value!=undefined){
- _3a.options.originalValue=_36.value;
- }
- }else{
- _3a=$.data(this,"textbox",{options:$.extend({},$.fn.textbox.defaults,$.fn.textbox.parseOptions(this),_36),textbox:_1(this)});
- _3a.options.originalValue=_3a.options.value;
- }
- _5(this);
- _1f(this);
- _e(this);
- _1a(this);
- $(this).textbox("initValue",_3a.options.value);
- });
- };
- $.fn.textbox.methods={options:function(jq){
- return $.data(jq[0],"textbox").options;
- },cloneFrom:function(jq,_3b){
- return jq.each(function(){
- var t=$(this);
- if(t.data("textbox")){
- return;
- }
- if(!$(_3b).data("textbox")){
- $(_3b).textbox();
- }
- var _3c=t.attr("name")||"";
- t.addClass("textbox-f").hide();
- t.removeAttr("name").attr("textboxName",_3c);
- var _3d=$(_3b).next().clone().insertAfter(t);
- _3d.find("input.textbox-value").attr("name",_3c);
- $.data(this,"textbox",{options:$.extend(true,{},$(_3b).textbox("options")),textbox:_3d});
- var _3e=$(_3b).textbox("button");
- if(_3e.length){
- t.textbox("button").linkbutton($.extend(true,{},_3e.linkbutton("options")));
- }
- _1f(this);
- _1a(this);
- });
- },textbox:function(jq){
- return $.data(jq[0],"textbox").textbox.find(".textbox-text");
- },button:function(jq){
- return $.data(jq[0],"textbox").textbox.find(".textbox-button");
- },destroy:function(jq){
- return jq.each(function(){
- _c(this);
- });
- },resize:function(jq,_3f){
- return jq.each(function(){
- _e(this,_3f);
- });
- },disable:function(jq){
- return jq.each(function(){
- _a(this,true);
- _1f(this);
- });
- },enable:function(jq){
- return jq.each(function(){
- _a(this,false);
- _1f(this);
- });
- },readonly:function(jq,_40){
- return jq.each(function(){
- _b(this,_40);
- _1f(this);
- });
- },isValid:function(jq){
- return jq.textbox("textbox").validatebox("isValid");
- },clear:function(jq){
- return jq.each(function(){
- $(this).textbox("setValue","");
- });
- },setText:function(jq,_41){
- return jq.each(function(){
- var _42=$(this).textbox("options");
- var _43=$(this).textbox("textbox");
- if($(this).textbox("getText")!=_41){
- _42.value=_41;
- _43.val(_41);
- }
- if(!_43.is(":focus")){
- if(_41){
- _43.removeClass("textbox-prompt");
- }else{
- _43.val(_42.prompt).addClass("textbox-prompt");
- }
- }
- $(this).textbox("validate");
- });
- },initValue:function(jq,_44){
- return jq.each(function(){
- var _45=$.data(this,"textbox");
- _45.options.value="";
- $(this).textbox("setText",_44);
- _45.textbox.find(".textbox-value").val(_44);
- $(this).val(_44);
- });
- },setValue:function(jq,_46){
- return jq.each(function(){
- var _47=$.data(this,"textbox").options;
- var _48=$(this).textbox("getValue");
- $(this).textbox("initValue",_46);
- if(_48!=_46){
- _47.onChange.call(this,_46,_48);
- }
- });
- },getText:function(jq){
- var _49=jq.textbox("textbox");
- if(_49.is(":focus")){
- return _49.val();
- }else{
- return jq.textbox("options").value;
- }
- },getValue:function(jq){
- return jq.data("textbox").textbox.find(".textbox-value").val();
- },reset:function(jq){
- return jq.each(function(){
- var _4a=$(this).textbox("options");
- $(this).textbox("setValue",_4a.originalValue);
- });
- },getIcon:function(jq,_4b){
- return jq.data("textbox").textbox.find(".textbox-icon:eq("+_4b+")");
- },getTipX:function(jq){
- var _4c=jq.data("textbox");
- var _4d=_4c.options;
- var tb=_4c.textbox;
- var _4e=tb.find(".textbox-text");
- var _4f=tb.find(".textbox-addon")._outerWidth();
- var _50=tb.find(".textbox-button")._outerWidth();
- if(_4d.tipPosition=="right"){
- return (_4d.iconAlign=="right"?_4f:0)+(_4d.buttonAlign=="right"?_50:0)+1;
- }else{
- if(_4d.tipPosition=="left"){
- return (_4d.iconAlign=="left"?-_4f:0)+(_4d.buttonAlign=="left"?-_50:0)-1;
- }else{
- return _4f/2*(_4d.iconAlign=="right"?1:-1);
- }
- }
- }};
- $.fn.textbox.parseOptions=function(_51){
- var t=$(_51);
- return $.extend({},$.fn.validatebox.parseOptions(_51),$.parser.parseOptions(_51,["prompt","iconCls","iconAlign","buttonText","buttonIcon","buttonAlign",{multiline:"boolean",editable:"boolean",iconWidth:"number"}]),{value:(t.val()||undefined),type:(t.attr("type")?t.attr("type"):undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)});
- };
- $.fn.textbox.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,prompt:"",value:"",type:"text",multiline:false,editable:true,disabled:false,readonly:false,icons:[],iconCls:null,iconAlign:"right",iconWidth:18,buttonText:"",buttonIcon:null,buttonAlign:"right",inputEvents:{blur:function(e){
- var t=$(e.data.target);
- var _52=t.textbox("options");
- t.textbox("setValue",_52.value);
- },keydown:function(e){
- if(e.keyCode==13){
- var t=$(e.data.target);
- t.textbox("setValue",t.textbox("getText"));
- }
- }},onChange:function(_53,_54){
- },onResize:function(_55,_56){
- },onClickButton:function(){
- },onClickIcon:function(_57){
- }});
- })(jQuery);
|