jquery.timespinner.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  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. var _3=$.data(_2,"timespinner").options;
  13. $(_2).addClass("timespinner-f");
  14. $(_2).spinner(_3);
  15. $(_2).unbind(".timespinner");
  16. $(_2).bind("click.timespinner",function(){
  17. var _4=0;
  18. if(this.selectionStart!=null){
  19. _4=this.selectionStart;
  20. }else{
  21. if(this.createTextRange){
  22. var _5=_2.createTextRange();
  23. var s=document.selection.createRange();
  24. s.setEndPoint("StartToStart",_5);
  25. _4=s.text.length;
  26. }
  27. }
  28. if(_4>=0&&_4<=2){
  29. _3.highlight=0;
  30. }else{
  31. if(_4>=3&&_4<=5){
  32. _3.highlight=1;
  33. }else{
  34. if(_4>=6&&_4<=8){
  35. _3.highlight=2;
  36. }
  37. }
  38. }
  39. _7(_2);
  40. }).bind("blur.timespinner",function(){
  41. _6(_2);
  42. });
  43. };
  44. function _7(_8){
  45. var _9=$.data(_8,"timespinner").options;
  46. var _a=0,_b=0;
  47. if(_9.highlight==0){
  48. _a=0;
  49. _b=2;
  50. }else{
  51. if(_9.highlight==1){
  52. _a=3;
  53. _b=5;
  54. }else{
  55. if(_9.highlight==2){
  56. _a=6;
  57. _b=8;
  58. }
  59. }
  60. }
  61. if(_8.selectionStart!=null){
  62. _8.setSelectionRange(_a,_b);
  63. }else{
  64. if(_8.createTextRange){
  65. var _c=_8.createTextRange();
  66. _c.collapse();
  67. _c.moveEnd("character",_b);
  68. _c.moveStart("character",_a);
  69. _c.select();
  70. }
  71. }
  72. $(_8).focus();
  73. };
  74. function _d(_e,_f){
  75. var _10=$.data(_e,"timespinner").options;
  76. if(!_f){
  77. return null;
  78. }
  79. var vv=_f.split(_10.separator);
  80. for(var i=0;i<vv.length;i++){
  81. if(isNaN(vv[i])){
  82. return null;
  83. }
  84. }
  85. while(vv.length<3){
  86. vv.push(0);
  87. }
  88. return new Date(1900,0,0,vv[0],vv[1],vv[2]);
  89. };
  90. function _6(_11){
  91. var _12=$.data(_11,"timespinner").options;
  92. var _13=$(_11).val();
  93. var _14=_d(_11,_13);
  94. if(!_14){
  95. _12.value="";
  96. $(_11).spinner("setValue","");
  97. return;
  98. }
  99. var _15=_d(_11,_12.min);
  100. var _16=_d(_11,_12.max);
  101. if(_15&&_15>_14){
  102. _14=_15;
  103. }
  104. if(_16&&_16<_14){
  105. _14=_16;
  106. }
  107. var tt=[_17(_14.getHours()),_17(_14.getMinutes())];
  108. if(_12.showSeconds){
  109. tt.push(_17(_14.getSeconds()));
  110. }
  111. var val=tt.join(_12.separator);
  112. _12.value=val;
  113. $(_11).spinner("setValue",val);
  114. function _17(_18){
  115. return (_18<10?"0":"")+_18;
  116. };
  117. };
  118. function _19(_1a,_1b){
  119. var _1c=$.data(_1a,"timespinner").options;
  120. var val=$(_1a).val();
  121. if(val==""){
  122. val=[0,0,0].join(_1c.separator);
  123. }
  124. var vv=val.split(_1c.separator);
  125. for(var i=0;i<vv.length;i++){
  126. vv[i]=parseInt(vv[i],10);
  127. }
  128. if(_1b==true){
  129. vv[_1c.highlight]-=_1c.increment;
  130. }else{
  131. vv[_1c.highlight]+=_1c.increment;
  132. }
  133. $(_1a).val(vv.join(_1c.separator));
  134. _6(_1a);
  135. _7(_1a);
  136. };
  137. $.fn.timespinner=function(_1d,_1e){
  138. if(typeof _1d=="string"){
  139. var _1f=$.fn.timespinner.methods[_1d];
  140. if(_1f){
  141. return _1f(this,_1e);
  142. }else{
  143. return this.spinner(_1d,_1e);
  144. }
  145. }
  146. _1d=_1d||{};
  147. return this.each(function(){
  148. var _20=$.data(this,"timespinner");
  149. if(_20){
  150. $.extend(_20.options,_1d);
  151. }else{
  152. $.data(this,"timespinner",{options:$.extend({},$.fn.timespinner.defaults,$.fn.timespinner.parseOptions(this),_1d)});
  153. }
  154. _1(this);
  155. });
  156. };
  157. $.fn.timespinner.methods={options:function(jq){
  158. var _21=$.data(jq[0],"timespinner").options;
  159. return $.extend(_21,{value:jq.val(),originalValue:jq.spinner("options").originalValue});
  160. },setValue:function(jq,_22){
  161. return jq.each(function(){
  162. $(this).val(_22);
  163. _6(this);
  164. });
  165. },getHours:function(jq){
  166. var _23=$.data(jq[0],"timespinner").options;
  167. var vv=jq.val().split(_23.separator);
  168. return parseInt(vv[0],10);
  169. },getMinutes:function(jq){
  170. var _24=$.data(jq[0],"timespinner").options;
  171. var vv=jq.val().split(_24.separator);
  172. return parseInt(vv[1],10);
  173. },getSeconds:function(jq){
  174. var _25=$.data(jq[0],"timespinner").options;
  175. var vv=jq.val().split(_25.separator);
  176. return parseInt(vv[2],10)||0;
  177. }};
  178. $.fn.timespinner.parseOptions=function(_26){
  179. return $.extend({},$.fn.spinner.parseOptions(_26),$.parser.parseOptions(_26,["separator",{showSeconds:"boolean",highlight:"number"}]));
  180. };
  181. $.fn.timespinner.defaults=$.extend({},$.fn.spinner.defaults,{separator:":",showSeconds:false,highlight:0,spin:function(_27){
  182. _19(this,_27);
  183. }});
  184. })(jQuery);