222 lines
4.6 KiB
JavaScript
222 lines
4.6 KiB
JavaScript
|
/**
|
||
|
* EasyUI for jQuery 1.9.14
|
||
|
*
|
||
|
* Copyright (c) 2009-2021 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){
|
||
|
var _3=$(_2).data("maskedbox");
|
||
|
var _4=_3.options;
|
||
|
$(_2).textbox(_4);
|
||
|
$(_2).maskedbox("initValue",_4.value);
|
||
|
};
|
||
|
function _5(_6,_7){
|
||
|
var _8=$(_6).maskedbox("options");
|
||
|
var tt=(_7||$(_6).maskedbox("getText")||"").split("");
|
||
|
var vv=[];
|
||
|
for(var i=0;i<_8.mask.length;i++){
|
||
|
if(_8.masks[_8.mask[i]]){
|
||
|
var t=tt[i];
|
||
|
vv.push(t!=_8.promptChar?t:" ");
|
||
|
}
|
||
|
}
|
||
|
return vv.join("");
|
||
|
};
|
||
|
function _9(_a,_b){
|
||
|
var _c=$(_a).maskedbox("options");
|
||
|
var cc=_b.split("");
|
||
|
var tt=[];
|
||
|
for(var i=0;i<_c.mask.length;i++){
|
||
|
var m=_c.mask[i];
|
||
|
var r=_c.masks[m];
|
||
|
if(r){
|
||
|
var c=cc.shift();
|
||
|
if(c!=undefined){
|
||
|
var d=new RegExp(r,"i");
|
||
|
if(d.test(c)){
|
||
|
tt.push(c);
|
||
|
continue;
|
||
|
}
|
||
|
}
|
||
|
tt.push(_c.promptChar);
|
||
|
}else{
|
||
|
tt.push(m);
|
||
|
}
|
||
|
}
|
||
|
return tt.join("");
|
||
|
};
|
||
|
function _d(_e,c){
|
||
|
var _f=$(_e).maskedbox("options");
|
||
|
var _10=$(_e).maskedbox("getSelectionRange");
|
||
|
var _11=_12(_e,_10.start);
|
||
|
var end=_12(_e,_10.end);
|
||
|
if(_11!=-1){
|
||
|
var r=new RegExp(_f.masks[_f.mask[_11]],"i");
|
||
|
if(r.test(c)){
|
||
|
var vv=_5(_e).split("");
|
||
|
var _13=_11-_14(_e,_11);
|
||
|
var _15=end-_14(_e,end);
|
||
|
vv.splice(_13,_15-_13,c);
|
||
|
$(_e).maskedbox("setValue",_9(_e,vv.join("")));
|
||
|
_11=_12(_e,++_11);
|
||
|
$(_e).maskedbox("setSelectionRange",{start:_11,end:_11});
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
function _16(_17,_18){
|
||
|
var _19=$(_17).maskedbox("options");
|
||
|
var vv=_5(_17).split("");
|
||
|
var _1a=$(_17).maskedbox("getSelectionRange");
|
||
|
if(_1a.start==_1a.end){
|
||
|
if(_18){
|
||
|
var _1b=_1c(_17,_1a.start);
|
||
|
}else{
|
||
|
var _1b=_12(_17,_1a.start);
|
||
|
}
|
||
|
var _1d=_1b-_14(_17,_1b);
|
||
|
if(_1d>=0){
|
||
|
vv.splice(_1d,1);
|
||
|
}
|
||
|
}else{
|
||
|
var _1b=_12(_17,_1a.start);
|
||
|
var end=_1c(_17,_1a.end);
|
||
|
var _1d=_1b-_14(_17,_1b);
|
||
|
var _1e=end-_14(_17,end);
|
||
|
vv.splice(_1d,_1e-_1d+1);
|
||
|
}
|
||
|
$(_17).maskedbox("setValue",_9(_17,vv.join("")));
|
||
|
$(_17).maskedbox("setSelectionRange",{start:_1b,end:_1b});
|
||
|
};
|
||
|
function _14(_1f,pos){
|
||
|
var _20=$(_1f).maskedbox("options");
|
||
|
var _21=0;
|
||
|
if(pos>=_20.mask.length){
|
||
|
pos--;
|
||
|
}
|
||
|
for(var i=pos;i>=0;i--){
|
||
|
if(_20.masks[_20.mask[i]]==undefined){
|
||
|
_21++;
|
||
|
}
|
||
|
}
|
||
|
return _21;
|
||
|
};
|
||
|
function _12(_22,pos){
|
||
|
var _23=$(_22).maskedbox("options");
|
||
|
var m=_23.mask[pos];
|
||
|
var r=_23.masks[m];
|
||
|
while(pos<_23.mask.length&&!r){
|
||
|
pos++;
|
||
|
m=_23.mask[pos];
|
||
|
r=_23.masks[m];
|
||
|
}
|
||
|
return pos;
|
||
|
};
|
||
|
function _1c(_24,pos){
|
||
|
var _25=$(_24).maskedbox("options");
|
||
|
var m=_25.mask[--pos];
|
||
|
var r=_25.masks[m];
|
||
|
while(pos>=0&&!r){
|
||
|
pos--;
|
||
|
m=_25.mask[pos];
|
||
|
r=_25.masks[m];
|
||
|
}
|
||
|
return pos<0?0:pos;
|
||
|
};
|
||
|
function _26(e){
|
||
|
if(e.metaKey||e.ctrlKey){
|
||
|
return;
|
||
|
}
|
||
|
var _27=e.data.target;
|
||
|
var _28=$(_27).maskedbox("options");
|
||
|
var _29=[9,13,35,36,37,39];
|
||
|
if($.inArray(e.keyCode,_29)!=-1){
|
||
|
return true;
|
||
|
}
|
||
|
if(e.keyCode>=96&&e.keyCode<=105){
|
||
|
e.keyCode-=48;
|
||
|
}
|
||
|
var c=String.fromCharCode(e.keyCode);
|
||
|
if(e.keyCode>=65&&e.keyCode<=90&&!e.shiftKey){
|
||
|
c=c.toLowerCase();
|
||
|
}else{
|
||
|
if(e.keyCode==189){
|
||
|
c="-";
|
||
|
}else{
|
||
|
if(e.keyCode==187){
|
||
|
c="+";
|
||
|
}else{
|
||
|
if(e.keyCode==190){
|
||
|
c=".";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if(e.keyCode==8){
|
||
|
_16(_27,true);
|
||
|
}else{
|
||
|
if(e.keyCode==46){
|
||
|
_16(_27,false);
|
||
|
}else{
|
||
|
_d(_27,c);
|
||
|
}
|
||
|
}
|
||
|
return false;
|
||
|
};
|
||
|
$.extend($.fn.textbox.methods,{inputMask:function(jq,_2a){
|
||
|
return jq.each(function(){
|
||
|
var _2b=this;
|
||
|
var _2c=$.extend({},$.fn.maskedbox.defaults,_2a);
|
||
|
$.data(_2b,"maskedbox",{options:_2c});
|
||
|
var _2d=$(_2b).textbox("textbox");
|
||
|
_2d._unbind(".maskedbox");
|
||
|
for(var _2e in _2c.inputEvents){
|
||
|
_2d._bind(_2e+".maskedbox",{target:_2b},_2c.inputEvents[_2e]);
|
||
|
}
|
||
|
});
|
||
|
}});
|
||
|
$.fn.maskedbox=function(_2f,_30){
|
||
|
if(typeof _2f=="string"){
|
||
|
var _31=$.fn.maskedbox.methods[_2f];
|
||
|
if(_31){
|
||
|
return _31(this,_30);
|
||
|
}else{
|
||
|
return this.textbox(_2f,_30);
|
||
|
}
|
||
|
}
|
||
|
_2f=_2f||{};
|
||
|
return this.each(function(){
|
||
|
var _32=$.data(this,"maskedbox");
|
||
|
if(_32){
|
||
|
$.extend(_32.options,_2f);
|
||
|
}else{
|
||
|
$.data(this,"maskedbox",{options:$.extend({},$.fn.maskedbox.defaults,$.fn.maskedbox.parseOptions(this),_2f)});
|
||
|
}
|
||
|
_1(this);
|
||
|
});
|
||
|
};
|
||
|
$.fn.maskedbox.methods={options:function(jq){
|
||
|
var _33=jq.textbox("options");
|
||
|
return $.extend($.data(jq[0],"maskedbox").options,{width:_33.width,value:_33.value,originalValue:_33.originalValue,disabled:_33.disabled,readonly:_33.readonly});
|
||
|
},initValue:function(jq,_34){
|
||
|
return jq.each(function(){
|
||
|
_34=_9(this,_5(this,_34));
|
||
|
$(this).textbox("initValue",_34);
|
||
|
});
|
||
|
},setValue:function(jq,_35){
|
||
|
return jq.each(function(){
|
||
|
_35=_9(this,_5(this,_35));
|
||
|
$(this).textbox("setValue",_35);
|
||
|
});
|
||
|
}};
|
||
|
$.fn.maskedbox.parseOptions=function(_36){
|
||
|
var t=$(_36);
|
||
|
return $.extend({},$.fn.textbox.parseOptions(_36),$.parser.parseOptions(_36,["mask","promptChar"]),{});
|
||
|
};
|
||
|
$.fn.maskedbox.defaults=$.extend({},$.fn.textbox.defaults,{mask:"",promptChar:"_",masks:{"9":"[0-9]","a":"[a-zA-Z]","*":"[0-9a-zA-Z]"},inputEvents:{keydown:_26}});
|
||
|
})(jQuery);
|
||
|
|