587a78f27902a218067f9665ed582daba76495e8.svn-base 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. /**
  2. * jQuery EasyUI 1.3.6
  3. *
  4. * Copyright (c) 2009-2014 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the GPL license: http://www.gnu.org/licenses/gpl.txt
  7. * To use it on other terms please contact us at info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. $(_2).addClass("numberbox numberbox-f");
  13. var v=$("<input type=\"hidden\">").insertAfter(_2);
  14. var _3=$(_2).attr("name");
  15. if(_3){
  16. v.attr("name",_3);
  17. $(_2).removeAttr("name").attr("numberboxName",_3);
  18. }
  19. return v;
  20. };
  21. function _4(_5){
  22. var _6=$.data(_5,"numberbox").options;
  23. var fn=_6.onChange;
  24. _6.onChange=function(){
  25. };
  26. _7(_5,_6.parser.call(_5,_6.value));
  27. _6.onChange=fn;
  28. _6.originalValue=_8(_5);
  29. };
  30. function _9(_a,_b){
  31. var _c=$.data(_a,"numberbox").options;
  32. if(_b){
  33. _c.width=_b;
  34. }
  35. var t=$(_a);
  36. var _d=$("<div style=\"display:none\"></div>").insertBefore(t);
  37. t.appendTo("body");
  38. if(isNaN(_c.width)){
  39. _c.width=t.outerWidth();
  40. }
  41. t._outerWidth(_c.width)._outerHeight(_c.height);
  42. t.css("line-height",t.height()+"px");
  43. t.insertAfter(_d);
  44. _d.remove();
  45. };
  46. function _8(_e){
  47. return $.data(_e,"numberbox").field.val();
  48. };
  49. function _7(_f,_10){
  50. var _11=$.data(_f,"numberbox");
  51. var _12=_11.options;
  52. var _13=_8(_f);
  53. _10=_12.parser.call(_f,_10);
  54. _12.value=_10;
  55. _11.field.val(_10);
  56. $(_f).val(_12.formatter.call(_f,_10));
  57. if(_13!=_10){
  58. _12.onChange.call(_f,_10,_13);
  59. }
  60. };
  61. function _14(_15){
  62. var _16=$.data(_15,"numberbox").options;
  63. $(_15).unbind(".numberbox").bind("keypress.numberbox",function(e){
  64. return _16.filter.call(_15,e);
  65. }).bind("blur.numberbox",function(){
  66. _7(_15,$(this).val());
  67. $(this).val(_16.formatter.call(_15,_8(_15)));
  68. }).bind("focus.numberbox",function(){
  69. var vv=_8(_15);
  70. if(vv!=_16.parser.call(_15,$(this).val())){
  71. $(this).val(_16.formatter.call(_15,vv));
  72. }
  73. });
  74. };
  75. function _17(_18){
  76. if($.fn.validatebox){
  77. var _19=$.data(_18,"numberbox").options;
  78. $(_18).validatebox(_19);
  79. }
  80. };
  81. function _1a(_1b,_1c){
  82. var _1d=$.data(_1b,"numberbox").options;
  83. if(_1c){
  84. _1d.disabled=true;
  85. $(_1b).attr("disabled",true);
  86. }else{
  87. _1d.disabled=false;
  88. $(_1b).removeAttr("disabled");
  89. }
  90. };
  91. $.fn.numberbox=function(_1e,_1f){
  92. if(typeof _1e=="string"){
  93. var _20=$.fn.numberbox.methods[_1e];
  94. if(_20){
  95. return _20(this,_1f);
  96. }else{
  97. return this.validatebox(_1e,_1f);
  98. }
  99. }
  100. _1e=_1e||{};
  101. return this.each(function(){
  102. var _21=$.data(this,"numberbox");
  103. if(_21){
  104. $.extend(_21.options,_1e);
  105. }else{
  106. _21=$.data(this,"numberbox",{options:$.extend({},$.fn.numberbox.defaults,$.fn.numberbox.parseOptions(this),_1e),field:_1(this)});
  107. $(this).removeAttr("disabled");
  108. $(this).css({imeMode:"disabled"});
  109. }
  110. _1a(this,_21.options.disabled);
  111. _9(this);
  112. _14(this);
  113. _17(this);
  114. _4(this);
  115. });
  116. };
  117. $.fn.numberbox.methods={options:function(jq){
  118. return $.data(jq[0],"numberbox").options;
  119. },destroy:function(jq){
  120. return jq.each(function(){
  121. $.data(this,"numberbox").field.remove();
  122. $(this).validatebox("destroy");
  123. $(this).remove();
  124. });
  125. },resize:function(jq,_22){
  126. return jq.each(function(){
  127. _9(this,_22);
  128. });
  129. },disable:function(jq){
  130. return jq.each(function(){
  131. _1a(this,true);
  132. });
  133. },enable:function(jq){
  134. return jq.each(function(){
  135. _1a(this,false);
  136. });
  137. },fix:function(jq){
  138. return jq.each(function(){
  139. _7(this,$(this).val());
  140. });
  141. },setValue:function(jq,_23){
  142. return jq.each(function(){
  143. _7(this,_23);
  144. });
  145. },getValue:function(jq){
  146. return _8(jq[0]);
  147. },clear:function(jq){
  148. return jq.each(function(){
  149. var _24=$.data(this,"numberbox");
  150. _24.field.val("");
  151. $(this).val("");
  152. });
  153. },reset:function(jq){
  154. return jq.each(function(){
  155. var _25=$(this).numberbox("options");
  156. $(this).numberbox("setValue",_25.originalValue);
  157. });
  158. }};
  159. $.fn.numberbox.parseOptions=function(_26){
  160. var t=$(_26);
  161. return $.extend({},$.fn.validatebox.parseOptions(_26),$.parser.parseOptions(_26,["width","height","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)});
  162. };
  163. $.fn.numberbox.defaults=$.extend({},$.fn.validatebox.defaults,{width:"auto",height:22,disabled:false,value:"",min:null,max:null,precision:0,decimalSeparator:".",groupSeparator:"",prefix:"",suffix:"",filter:function(e){
  164. var _27=$(this).numberbox("options");
  165. if(e.which==45){
  166. return ($(this).val().indexOf("-")==-1?true:false);
  167. }
  168. var c=String.fromCharCode(e.which);
  169. if(c==_27.decimalSeparator){
  170. return ($(this).val().indexOf(c)==-1?true:false);
  171. }else{
  172. if(c==_27.groupSeparator){
  173. return true;
  174. }else{
  175. if((e.which>=48&&e.which<=57&&e.ctrlKey==false&&e.shiftKey==false)||e.which==0||e.which==8){
  176. return true;
  177. }else{
  178. if(e.ctrlKey==true&&(e.which==99||e.which==118)){
  179. return true;
  180. }else{
  181. return false;
  182. }
  183. }
  184. }
  185. }
  186. },formatter:function(_28){
  187. if(!_28){
  188. return _28;
  189. }
  190. _28=_28+"";
  191. var _29=$(this).numberbox("options");
  192. var s1=_28,s2="";
  193. var _2a=_28.indexOf(".");
  194. if(_2a>=0){
  195. s1=_28.substring(0,_2a);
  196. s2=_28.substring(_2a+1,_28.length);
  197. }
  198. if(_29.groupSeparator){
  199. var p=/(\d+)(\d{3})/;
  200. while(p.test(s1)){
  201. s1=s1.replace(p,"$1"+_29.groupSeparator+"$2");
  202. }
  203. }
  204. if(s2){
  205. return _29.prefix+s1+_29.decimalSeparator+s2+_29.suffix;
  206. }else{
  207. return _29.prefix+s1+_29.suffix;
  208. }
  209. },parser:function(s){
  210. s=s+"";
  211. var _2b=$(this).numberbox("options");
  212. if(parseFloat(s)!=s){
  213. if(_2b.prefix){
  214. s=$.trim(s.replace(new RegExp("\\"+$.trim(_2b.prefix),"g"),""));
  215. }
  216. if(_2b.suffix){
  217. s=$.trim(s.replace(new RegExp("\\"+$.trim(_2b.suffix),"g"),""));
  218. }
  219. if(_2b.groupSeparator){
  220. s=$.trim(s.replace(new RegExp("\\"+_2b.groupSeparator,"g"),""));
  221. }
  222. if(_2b.decimalSeparator){
  223. s=$.trim(s.replace(new RegExp("\\"+_2b.decimalSeparator,"g"),"."));
  224. }
  225. s=s.replace(/\s/g,"");
  226. }
  227. var val=parseFloat(s).toFixed(_2b.precision);
  228. if(isNaN(val)){
  229. val="";
  230. }else{
  231. if(typeof (_2b.min)=="number"&&val<_2b.min){
  232. val=_2b.min.toFixed(_2b.precision);
  233. }else{
  234. if(typeof (_2b.max)=="number"&&val>_2b.max){
  235. val=_2b.max.toFixed(_2b.precision);
  236. }
  237. }
  238. }
  239. return val;
  240. },onChange:function(_2c,_2d){
  241. }});
  242. })(jQuery);