c34e6b3e11997dfe02137cfb12913419a41e4ead.svn-base 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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("searchbox-f").hide();
  13. var _3=$("<span class=\"searchbox\"></span>").insertAfter(_2);
  14. var _4=$("<input type=\"text\" class=\"searchbox-text\">").appendTo(_3);
  15. $("<span><span class=\"searchbox-button\"></span></span>").appendTo(_3);
  16. var _5=$(_2).attr("name");
  17. if(_5){
  18. _4.attr("name",_5);
  19. $(_2).removeAttr("name").attr("searchboxName",_5);
  20. }
  21. return _3;
  22. };
  23. function _6(_7,_8){
  24. var _9=$.data(_7,"searchbox").options;
  25. var sb=$.data(_7,"searchbox").searchbox;
  26. if(_8){
  27. _9.width=_8;
  28. }
  29. sb.appendTo("body");
  30. if(isNaN(_9.width)){
  31. _9.width=sb._outerWidth();
  32. }
  33. var _a=sb.find("span.searchbox-button");
  34. var _b=sb.find("a.searchbox-menu");
  35. var _c=sb.find("input.searchbox-text");
  36. sb._outerWidth(_9.width)._outerHeight(_9.height);
  37. _c._outerWidth(sb.width()-_b._outerWidth()-_a._outerWidth());
  38. _c.css({height:sb.height()+"px",lineHeight:sb.height()+"px"});
  39. _b._outerHeight(sb.height());
  40. _a._outerHeight(sb.height());
  41. var _d=_b.find("span.l-btn-left");
  42. _d._outerHeight(sb.height());
  43. _d.find("span.l-btn-text").css({height:_d.height()+"px",lineHeight:_d.height()+"px"});
  44. sb.insertAfter(_7);
  45. };
  46. function _e(_f){
  47. var _10=$.data(_f,"searchbox");
  48. var _11=_10.options;
  49. if(_11.menu){
  50. _10.menu=$(_11.menu).menu({onClick:function(_12){
  51. _13(_12);
  52. }});
  53. var _14=_10.menu.children("div.menu-item:first");
  54. _10.menu.children("div.menu-item").each(function(){
  55. var _15=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)});
  56. if(_15.selected){
  57. _14=$(this);
  58. return false;
  59. }
  60. });
  61. _14.triggerHandler("click");
  62. }else{
  63. _10.searchbox.find("a.searchbox-menu").remove();
  64. _10.menu=null;
  65. }
  66. function _13(_16){
  67. _10.searchbox.find("a.searchbox-menu").remove();
  68. var mb=$("<a class=\"searchbox-menu\" href=\"javascript:void(0)\"></a>").html(_16.text);
  69. mb.prependTo(_10.searchbox).menubutton({menu:_10.menu,iconCls:_16.iconCls});
  70. _10.searchbox.find("input.searchbox-text").attr("name",_16.name||_16.text);
  71. _6(_f);
  72. };
  73. };
  74. function _17(_18){
  75. var _19=$.data(_18,"searchbox");
  76. var _1a=_19.options;
  77. var _1b=_19.searchbox.find("input.searchbox-text");
  78. var _1c=_19.searchbox.find(".searchbox-button");
  79. _1b.unbind(".searchbox");
  80. _1c.unbind(".searchbox");
  81. if(!_1a.disabled){
  82. _1b.bind("blur.searchbox",function(e){
  83. _1a.value=$(this).val();
  84. if(_1a.value==""){
  85. $(this).val(_1a.prompt);
  86. $(this).addClass("searchbox-prompt");
  87. }else{
  88. $(this).removeClass("searchbox-prompt");
  89. }
  90. }).bind("focus.searchbox",function(e){
  91. if($(this).val()!=_1a.value){
  92. $(this).val(_1a.value);
  93. }
  94. $(this).removeClass("searchbox-prompt");
  95. }).bind("keydown.searchbox",function(e){
  96. if(e.keyCode==13){
  97. e.preventDefault();
  98. _1a.value=$(this).val();
  99. _1a.searcher.call(_18,_1a.value,_1b._propAttr("name"));
  100. return false;
  101. }
  102. });
  103. _1c.bind("click.searchbox",function(){
  104. _1a.searcher.call(_18,_1a.value,_1b._propAttr("name"));
  105. }).bind("mouseenter.searchbox",function(){
  106. $(this).addClass("searchbox-button-hover");
  107. }).bind("mouseleave.searchbox",function(){
  108. $(this).removeClass("searchbox-button-hover");
  109. });
  110. }
  111. };
  112. function _1d(_1e,_1f){
  113. var _20=$.data(_1e,"searchbox");
  114. var _21=_20.options;
  115. var _22=_20.searchbox.find("input.searchbox-text");
  116. var mb=_20.searchbox.find("a.searchbox-menu");
  117. if(_1f){
  118. _21.disabled=true;
  119. $(_1e).attr("disabled",true);
  120. _22.attr("disabled",true);
  121. if(mb.length){
  122. mb.menubutton("disable");
  123. }
  124. }else{
  125. _21.disabled=false;
  126. $(_1e).removeAttr("disabled");
  127. _22.removeAttr("disabled");
  128. if(mb.length){
  129. mb.menubutton("enable");
  130. }
  131. }
  132. };
  133. function _23(_24){
  134. var _25=$.data(_24,"searchbox");
  135. var _26=_25.options;
  136. var _27=_25.searchbox.find("input.searchbox-text");
  137. _26.originalValue=_26.value;
  138. if(_26.value){
  139. _27.val(_26.value);
  140. _27.removeClass("searchbox-prompt");
  141. }else{
  142. _27.val(_26.prompt);
  143. _27.addClass("searchbox-prompt");
  144. }
  145. };
  146. $.fn.searchbox=function(_28,_29){
  147. if(typeof _28=="string"){
  148. return $.fn.searchbox.methods[_28](this,_29);
  149. }
  150. _28=_28||{};
  151. return this.each(function(){
  152. var _2a=$.data(this,"searchbox");
  153. if(_2a){
  154. $.extend(_2a.options,_28);
  155. }else{
  156. _2a=$.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_28),searchbox:_1(this)});
  157. }
  158. _e(this);
  159. _23(this);
  160. _17(this);
  161. _1d(this,_2a.options.disabled);
  162. _6(this);
  163. });
  164. };
  165. $.fn.searchbox.methods={options:function(jq){
  166. return $.data(jq[0],"searchbox").options;
  167. },menu:function(jq){
  168. return $.data(jq[0],"searchbox").menu;
  169. },textbox:function(jq){
  170. return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text");
  171. },getValue:function(jq){
  172. return $.data(jq[0],"searchbox").options.value;
  173. },setValue:function(jq,_2b){
  174. return jq.each(function(){
  175. $(this).searchbox("options").value=_2b;
  176. $(this).searchbox("textbox").val(_2b);
  177. $(this).searchbox("textbox").blur();
  178. });
  179. },clear:function(jq){
  180. return jq.each(function(){
  181. $(this).searchbox("setValue","");
  182. });
  183. },reset:function(jq){
  184. return jq.each(function(){
  185. var _2c=$(this).searchbox("options");
  186. $(this).searchbox("setValue",_2c.originalValue);
  187. });
  188. },getName:function(jq){
  189. return $.data(jq[0],"searchbox").searchbox.find("input.searchbox-text").attr("name");
  190. },selectName:function(jq,_2d){
  191. return jq.each(function(){
  192. var _2e=$.data(this,"searchbox").menu;
  193. if(_2e){
  194. _2e.children("div.menu-item[name=\""+_2d+"\"]").triggerHandler("click");
  195. }
  196. });
  197. },destroy:function(jq){
  198. return jq.each(function(){
  199. var _2f=$(this).searchbox("menu");
  200. if(_2f){
  201. _2f.menu("destroy");
  202. }
  203. $.data(this,"searchbox").searchbox.remove();
  204. $(this).remove();
  205. });
  206. },resize:function(jq,_30){
  207. return jq.each(function(){
  208. _6(this,_30);
  209. });
  210. },disable:function(jq){
  211. return jq.each(function(){
  212. _1d(this,true);
  213. _17(this);
  214. });
  215. },enable:function(jq){
  216. return jq.each(function(){
  217. _1d(this,false);
  218. _17(this);
  219. });
  220. }};
  221. $.fn.searchbox.parseOptions=function(_31){
  222. var t=$(_31);
  223. return $.extend({},$.parser.parseOptions(_31,["width","height","prompt","menu"]),{value:(t.val()||undefined),disabled:(t.attr("disabled")?true:undefined),searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)});
  224. };
  225. $.fn.searchbox.defaults={width:"auto",height:22,prompt:"",value:"",menu:null,disabled:false,searcher:function(_32,_33){
  226. }};
  227. })(jQuery);