123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- /**
- * jQuery EasyUI 1.3.4
- *
- * Copyright (c) 2009-2013 www.jeasyui.com. All rights reserved.
- *
- * Licensed under the GPL or commercial licenses
- * To use it on other terms please contact us: info@jeasyui.com
- * http://www.gnu.org/licenses/gpl.txt
- * http://www.jeasyui.com/license_commercial.php
- *
- */
- (function($){
- function _1(_2){
- $(_2).addClass("numberbox-f");
- var v=$("<input type=\"hidden\">").insertAfter(_2);
- var _3=$(_2).attr("name");
- if(_3){
- v.attr("name",_3);
- $(_2).removeAttr("name").attr("numberboxName",_3);
- }
- return v;
- };
- function _4(_5){
- var _6=$.data(_5,"numberbox").options;
- var fn=_6.onChange;
- _6.onChange=function(){
- };
- _7(_5,_6.parser.call(_5,_6.value));
- _6.onChange=fn;
- _6.originalValue=_8(_5);
- };
- function _8(_9){
- return $.data(_9,"numberbox").field.val();
- };
- function _7(_a,_b){
- var _c=$.data(_a,"numberbox");
- var _d=_c.options;
- var _e=_8(_a);
- _b=_d.parser.call(_a,_b);
- _d.value=_b;
- _c.field.val(_b);
- $(_a).val(_d.formatter.call(_a,_b));
- if(_e!=_b){
- _d.onChange.call(_a,_b,_e);
- }
- };
- function _f(_10){
- var _11=$.data(_10,"numberbox").options;
- $(_10).unbind(".numberbox").bind("keypress.numberbox",function(e){
- return _11.filter.call(_10,e);
- }).bind("blur.numberbox",function(){
- _7(_10,$(this).val());
- $(this).val(_11.formatter.call(_10,_8(_10)));
- }).bind("focus.numberbox",function(){
- var vv=_8(_10);
- if(vv!=_11.parser.call(_10,$(this).val())){
- $(this).val(_11.formatter.call(_10,vv));
- }
- });
- };
- function _12(_13){
- if($.fn.validatebox){
- var _14=$.data(_13,"numberbox").options;
- $(_13).validatebox(_14);
- }
- };
- function _15(_16,_17){
- var _18=$.data(_16,"numberbox").options;
- if(_17){
- _18.disabled=true;
- $(_16).attr("disabled",true);
- }else{
- _18.disabled=false;
- $(_16).removeAttr("disabled");
- }
- };
- $.fn.numberbox=function(_19,_1a){
- if(typeof _19=="string"){
- var _1b=$.fn.numberbox.methods[_19];
- if(_1b){
- return _1b(this,_1a);
- }else{
- return this.validatebox(_19,_1a);
- }
- }
- _19=_19||{};
- return this.each(function(){
- var _1c=$.data(this,"numberbox");
- if(_1c){
- $.extend(_1c.options,_19);
- }else{
- _1c=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_19),field:_1(this)});
- $(this).removeAttr("disabled");
- $(this).css({imeMode:"disabled"});
- }
- _15(this,_1c.options.disabled);
- _f(this);
- _12(this);
- _4(this);
- });
- };
- $.fn.numberbox.methods={options:function(jq){
- return $.data(jq[0],"numberbox").options;
- },destroy:function(jq){
- return jq.each(function(){
- $.data(this,"numberbox").field.remove();
- $(this).validatebox("destroy");
- $(this).remove();
- });
- },disable:function(jq){
- return jq.each(function(){
- _15(this,true);
- });
- },enable:function(jq){
- return jq.each(function(){
- _15(this,false);
- });
- },fix:function(jq){
- return jq.each(function(){
- _7(this,$(this).val());
- });
- },setValue:function(jq,_1d){
- return jq.each(function(){
- _7(this,_1d);
- });
- },getValue:function(jq){
- return _8(jq[0]);
- },clear:function(jq){
- return jq.each(function(){
- var _1e=$.data(this,"numberbox");
- _1e.field.val("");
- $(this).val("");
- });
- },reset:function(jq){
- return jq.each(function(){
- var _1f=$(this).numberbox("options");
- $(this).numberbox("setValue",_1f.originalValue);
- });
- }};
- $.fn.numberbox.parseOptions=function(_20){
- var t=$(_20);
- return $.extend({},$.fn.validatebox.parseOptions(_20),$.parser.parseOptions(_20,["decimalSeparator","groupSeparator","suffix",{min:"number",max:"number",precision:"number"}]),{prefix:(t.attr("prefix")?t.attr("prefix"):undefined),disabled:(t.attr("disabled")?true:undefined),value:(t.val()||undefined)});
- };
- $.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){
- var _21=$(this).numberbox("options");
- if(e.which==45){
- return ($(this).val().indexOf("-")==-1?true:false);
- }
- var c=String.fromCharCode(e.which);
- if(c==_21.decimalSeparator){
- return ($(this).val().indexOf(c)==-1?true:false);
- }else{
- if(c==_21.groupSeparator){
- return true;
- }else{
- if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){
- return true;
- }else{
- if(e.ctrlKey==true&&(e.which==99||e.which==118)){
- return true;
- }else{
- return false;
- }
- }
- }
- }
- },formatter:function(_22){
- if(!_22){
- return _22;
- }
- _22=_22+"";
- var _23=$(this).numberbox("options");
- var s1=_22,s2="";
- var _24=_22.indexOf(".");
- if(_24>=0){
- s1=_22.substring(0,_24);
- s2=_22.substring(_24+1,_22.length);
- }
- if(_23.groupSeparator){
- var p=/(\d+)(\d{3})/;
- while(p.test(s1)){
- s1=s1.replace(p,"$1"+_23.groupSeparator+"$2");
- }
- }
- if(s2){
- return _23.prefix+s1+_23.decimalSeparator+s2+_23.suffix;
- }else{
- return _23.prefix+s1+_23.suffix;
- }
- },parser:function(s){
- s=s+"";
- var _25=$(this).numberbox("options");
- if(parseFloat(s)!=s){
- if(_25.prefix){
- s=$.trim(s.replace(new RegExp("\\"+$.trim(_25.prefix),"g"),""));
- }
- if(_25.suffix){
- s=$.trim(s.replace(new RegExp("\\"+$.trim(_25.suffix),"g"),""));
- }
- if(_25.groupSeparator){
- s=$.trim(s.replace(new RegExp("\\"+_25.groupSeparator,"g"),""));
- }
- if(_25.decimalSeparator){
- s=$.trim(s.replace(new RegExp("\\"+_25.decimalSeparator,"g"),"."));
- }
- s=s.replace(/\s/g,"");
- }
- var val=parseFloat(s).toFixed(_25.precision);
- if(isNaN(val)){
- val="";
- }else{
- if(typeof (_25.min)=="number"&&val<_25.min){
- val=_25.min.toFixed(_25.precision);
- }else{
- if(typeof (_25.max)=="number"&&val>_25.max){
- val=_25.max.toFixed(_25.precision);
- }
- }
- }
- return val;
- },onChange:function(_26,_27){
- }});
- })(jQuery);
|