353 lines
10 KiB
JavaScript
353 lines
10 KiB
JavaScript
/**
|
|
* jQuery EasyUI 1.4
|
|
*
|
|
* 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\">"+"<span class=\"textbox-addon\"><span class=\"textbox-icon\"></span></span>"+"<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);
|
|
}
|
|
_3.bind("_resize",function(e,_5){
|
|
if($(this).hasClass("easyui-fluid")||_5){
|
|
_6(_2);
|
|
}
|
|
return false;
|
|
});
|
|
return _3;
|
|
};
|
|
function _7(_8){
|
|
var _9=$.data(_8,"textbox");
|
|
var _a=_9.options;
|
|
var tb=_9.textbox;
|
|
tb.find(".textbox-text").remove();
|
|
if(_a.multiline){
|
|
$("<textarea class=\"textbox-text\" autocomplete=\"off\"></textarea>").prependTo(tb);
|
|
}else{
|
|
$("<input type=\""+_a.type+"\" class=\"textbox-text\" autocomplete=\"off\">").prependTo(tb);
|
|
}
|
|
tb.find(".textbox-addon").remove();
|
|
var bb=_a.icons?$.extend(true,[],_a.icons):[];
|
|
if(_a.iconCls){
|
|
bb.push({iconCls:_a.iconCls,disabled:true});
|
|
}
|
|
if(bb.length){
|
|
var bc=$("<span class=\"textbox-addon\"></span>").prependTo(tb);
|
|
bc.addClass("textbox-addon-"+_a.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+"\"></a>");
|
|
}
|
|
}
|
|
tb.find(".textbox-button").remove();
|
|
if(_a.buttonText||_a.buttonIcon){
|
|
var _b=$("<a href=\"javascript:void(0)\" class=\"textbox-button\"></a>").prependTo(tb);
|
|
_b.addClass("textbox-button-"+_a.buttonAlign).linkbutton({text:_a.buttonText,iconCls:_a.buttonIcon,onClick:function(){
|
|
_a.onClickButton.call(_8);
|
|
}});
|
|
}
|
|
_c(_8,_a.disabled);
|
|
_d(_8,_a.readonly);
|
|
};
|
|
function _e(_f){
|
|
var tb=$.data(_f,"textbox").textbox;
|
|
tb.find(".textbox-text").validatebox("destroy");
|
|
tb.remove();
|
|
$(_f).remove();
|
|
};
|
|
function _6(_10,_11){
|
|
var _12=$.data(_10,"textbox");
|
|
var _13=_12.options;
|
|
var tb=_12.textbox;
|
|
var _14=tb.parent();
|
|
if(_11){
|
|
_13.width=_11;
|
|
}
|
|
if(isNaN(parseInt(_13.width))){
|
|
var c=$(_10).clone();
|
|
c.css("visibility","hidden");
|
|
c.insertAfter(_10);
|
|
_13.width=c.outerWidth();
|
|
c.remove();
|
|
}
|
|
tb.appendTo("body");
|
|
var _15=tb.find(".textbox-text");
|
|
var btn=tb.find(".textbox-button");
|
|
var _16=tb.find(".textbox-addon");
|
|
var _17=_16.find(".textbox-icon");
|
|
tb._size(_13,_14);
|
|
btn.linkbutton("resize",{height:tb.height()});
|
|
btn.css({left:(_13.buttonAlign=="left"?0:""),right:(_13.buttonAlign=="right"?0:"")});
|
|
_16.css({left:(_13.iconAlign=="left"?(_13.buttonAlign=="left"?btn._outerWidth():0):""),right:(_13.iconAlign=="right"?(_13.buttonAlign=="right"?btn._outerWidth():0):"")});
|
|
_17.css({width:_13.iconWidth+"px",height:tb.height()+"px"});
|
|
_15.css({paddingLeft:(_10.style.paddingLeft||""),paddingRight:(_10.style.paddingRight||""),marginLeft:_18("left"),marginRight:_18("right")});
|
|
if(_13.multiline){
|
|
_15.css({paddingTop:(_10.style.paddingTop||""),paddingBottom:(_10.style.paddingBottom||"")});
|
|
_15._outerHeight(tb.height());
|
|
}else{
|
|
var _19=Math.floor((tb.height()-_15.height())/2);
|
|
_15.css({paddingTop:_19+"px",paddingBottom:_19+"px"});
|
|
}
|
|
_15._outerWidth(tb.width()-_17.length*_13.iconWidth-btn._outerWidth());
|
|
tb.insertAfter(_10);
|
|
_13.onResize.call(_10,_13.width,_13.height);
|
|
function _18(_1a){
|
|
return (_13.iconAlign==_1a?_16._outerWidth():0)+(_13.buttonAlign==_1a?btn._outerWidth():0);
|
|
};
|
|
};
|
|
function _1b(_1c){
|
|
var _1d=$(_1c).textbox("options");
|
|
var _1e=$(_1c).textbox("textbox");
|
|
_1e.validatebox($.extend({},_1d,{deltaX:$(_1c).textbox("getTipX"),onBeforeValidate:function(){
|
|
var box=$(this);
|
|
if(!box.is(":focus")){
|
|
_1d.oldInputValue=box.val();
|
|
box.val(_1d.value);
|
|
}
|
|
},onValidate:function(_1f){
|
|
var box=$(this);
|
|
if(_1d.oldInputValue!=undefined){
|
|
box.val(_1d.oldInputValue);
|
|
_1d.oldInputValue=undefined;
|
|
}
|
|
var tb=box.parent();
|
|
if(_1f){
|
|
tb.removeClass("textbox-invalid");
|
|
}else{
|
|
tb.addClass("textbox-invalid");
|
|
}
|
|
}}));
|
|
};
|
|
function _20(_21){
|
|
var _22=$.data(_21,"textbox");
|
|
var _23=_22.options;
|
|
var tb=_22.textbox;
|
|
var _24=tb.find(".textbox-text");
|
|
_24.attr("placeholder",_23.prompt);
|
|
_24.unbind(".textbox");
|
|
if(!_23.disabled&&!_23.readonly){
|
|
_24.bind("blur.textbox",function(e){
|
|
if(!tb.hasClass("textbox-focused")){
|
|
return;
|
|
}
|
|
_23.value=$(this).val();
|
|
if(_23.value==""){
|
|
$(this).val(_23.prompt).addClass("textbox-prompt");
|
|
}else{
|
|
$(this).removeClass("textbox-prompt");
|
|
}
|
|
tb.removeClass("textbox-focused");
|
|
}).bind("focus.textbox",function(e){
|
|
if($(this).val()!=_23.value){
|
|
$(this).val(_23.value);
|
|
}
|
|
$(this).removeClass("textbox-prompt");
|
|
tb.addClass("textbox-focused");
|
|
});
|
|
for(var _25 in _23.inputEvents){
|
|
_24.bind(_25+".textbox",{target:_21},_23.inputEvents[_25]);
|
|
}
|
|
}
|
|
var _26=tb.find(".textbox-addon");
|
|
_26.unbind().bind("click",{target:_21},function(e){
|
|
var _27=$(e.target).closest("a.textbox-icon:not(.textbox-icon-disabled)");
|
|
if(_27.length){
|
|
var _28=parseInt(_27.attr("icon-index"));
|
|
var _29=_23.icons[_28];
|
|
if(_29&&_29.handler){
|
|
_29.handler.call(_27[0],e);
|
|
_23.onClickIcon.call(_21,_28);
|
|
}
|
|
}
|
|
});
|
|
_26.find(".textbox-icon").each(function(_2a){
|
|
var _2b=_23.icons[_2a];
|
|
var _2c=$(this);
|
|
if(!_2b||_2b.disabled||_23.disabled||_23.readonly){
|
|
_2c.addClass("textbox-icon-disabled");
|
|
}else{
|
|
_2c.removeClass("textbox-icon-disabled");
|
|
}
|
|
});
|
|
tb.find(".textbox-button").linkbutton((_23.disabled||_23.readonly)?"disable":"enable");
|
|
};
|
|
function _c(_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 _d(_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;
|
|
}
|
|
_7(this);
|
|
_20(this);
|
|
_6(this);
|
|
_1b(this);
|
|
$(this).textbox("initValue",_3a.options.value);
|
|
});
|
|
};
|
|
$.fn.textbox.methods={options:function(jq){
|
|
return $.data(jq[0],"textbox").options;
|
|
},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(){
|
|
_e(this);
|
|
});
|
|
},resize:function(jq,_3b){
|
|
return jq.each(function(){
|
|
_6(this,_3b);
|
|
});
|
|
},disable:function(jq){
|
|
return jq.each(function(){
|
|
_c(this,true);
|
|
_20(this);
|
|
});
|
|
},enable:function(jq){
|
|
return jq.each(function(){
|
|
_c(this,false);
|
|
_20(this);
|
|
});
|
|
},readonly:function(jq,_3c){
|
|
return jq.each(function(){
|
|
_d(this,_3c);
|
|
_20(this);
|
|
});
|
|
},isValid:function(jq){
|
|
return jq.textbox("textbox").validatebox("isValid");
|
|
},clear:function(jq){
|
|
return jq.each(function(){
|
|
$(this).textbox("setValue","");
|
|
});
|
|
},setText:function(jq,_3d){
|
|
return jq.each(function(){
|
|
var _3e=$(this).textbox("options");
|
|
var _3f=$(this).textbox("textbox");
|
|
if($(this).textbox("getText")!=_3d){
|
|
_3e.value=_3d;
|
|
_3f.val(_3d);
|
|
}
|
|
if(!_3f.is(":focus")){
|
|
if(_3d){
|
|
_3f.removeClass("textbox-prompt");
|
|
}else{
|
|
_3f.val(_3e.prompt).addClass("textbox-prompt");
|
|
}
|
|
}
|
|
$(this).textbox("validate");
|
|
});
|
|
},initValue:function(jq,_40){
|
|
return jq.each(function(){
|
|
var _41=$.data(this,"textbox");
|
|
_41.options.value="";
|
|
$(this).textbox("setText",_40);
|
|
_41.textbox.find(".textbox-value").val(_40);
|
|
$(this).val(_40);
|
|
});
|
|
},setValue:function(jq,_42){
|
|
return jq.each(function(){
|
|
var _43=$.data(this,"textbox").options;
|
|
var _44=$(this).textbox("getValue");
|
|
$(this).textbox("initValue",_42);
|
|
if(_44!=_42){
|
|
_43.onChange.call(this,_42,_44);
|
|
}
|
|
});
|
|
},getText:function(jq){
|
|
var _45=jq.textbox("textbox");
|
|
if(_45.is(":focus")){
|
|
return _45.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 _46=$(this).textbox("options");
|
|
$(this).textbox("setValue",_46.originalValue);
|
|
});
|
|
},getIcon:function(jq,_47){
|
|
return jq.data("textbox").textbox.find(".textbox-icon:eq("+_47+")");
|
|
},getTipX:function(jq){
|
|
var _48=jq.data("textbox");
|
|
var _49=_48.options;
|
|
var tb=_48.textbox;
|
|
var _4a=tb.find(".textbox-text");
|
|
var _4b=tb.find(".textbox-addon")._outerWidth();
|
|
var _4c=tb.find(".textbox-button")._outerWidth();
|
|
if(_49.tipPosition=="right"){
|
|
return (_49.iconAlign=="right"?_4b:0)+(_49.buttonAlign=="right"?_4c:0)+1;
|
|
}else{
|
|
if(_49.tipPosition=="left"){
|
|
return (_49.iconAlign=="left"?-_4b:0)+(_49.buttonAlign=="left"?-_4c:0)-1;
|
|
}else{
|
|
return _4b/2*(_49.iconAlign=="right"?1:-1);
|
|
}
|
|
}
|
|
}};
|
|
$.fn.textbox.parseOptions=function(_4d){
|
|
var t=$(_4d);
|
|
return $.extend({},$.fn.validatebox.parseOptions(_4d),$.parser.parseOptions(_4d,["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 _4e=t.textbox("options");
|
|
t.textbox("setValue",_4e.value);
|
|
}},onChange:function(_4f,_50){
|
|
},onResize:function(_51,_52){
|
|
},onClickButton:function(){
|
|
},onClickIcon:function(_53){
|
|
}});
|
|
})(jQuery);
|
|
|