jquery.timespinner.js 4.0 KB

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