jquery.searchbox.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. /**
  2. * jQuery EasyUI 1.4.4
  3. *
  4. * Copyright (c) 2009-2015 www.jeasyui.com. All rights reserved.
  5. *
  6. * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
  7. * To use it on other terms please contact us: info@jeasyui.com
  8. *
  9. */
  10. (function($){
  11. function _1(_2){
  12. var _3=$.data(_2,"searchbox");
  13. var _4=_3.options;
  14. var _5=$.extend(true,[],_4.icons);
  15. _5.push({iconCls:"searchbox-button",handler:function(e){
  16. var t=$(e.data.target);
  17. var _6=t.searchbox("options");
  18. _6.searcher.call(e.data.target,t.searchbox("getValue"),t.searchbox("getName"));
  19. }});
  20. _7();
  21. var _8=_9();
  22. $(_2).addClass("searchbox-f").textbox($.extend({},_4,{icons:_5,buttonText:(_8?_8.text:"")}));
  23. $(_2).attr("searchboxName",$(_2).attr("textboxName"));
  24. _3.searchbox=$(_2).next();
  25. _3.searchbox.addClass("searchbox");
  26. _a(_8);
  27. function _7(){
  28. if(_4.menu){
  29. _3.menu=$(_4.menu).menu();
  30. var _b=_3.menu.menu("options");
  31. var _c=_b.onClick;
  32. _b.onClick=function(_d){
  33. _a(_d);
  34. _c.call(this,_d);
  35. };
  36. }else{
  37. if(_3.menu){
  38. _3.menu.menu("destroy");
  39. }
  40. _3.menu=null;
  41. }
  42. };
  43. function _9(){
  44. if(_3.menu){
  45. var _e=_3.menu.children("div.menu-item:first");
  46. _3.menu.children("div.menu-item").each(function(){
  47. var _f=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)});
  48. if(_f.selected){
  49. _e=$(this);
  50. return false;
  51. }
  52. });
  53. return _3.menu.menu("getItem",_e[0]);
  54. }else{
  55. return null;
  56. }
  57. };
  58. function _a(_10){
  59. if(!_10){
  60. return;
  61. }
  62. $(_2).textbox("button").menubutton({text:_10.text,iconCls:(_10.iconCls||null),menu:_3.menu,menuAlign:_4.buttonAlign,plain:false});
  63. _3.searchbox.find("input.textbox-value").attr("name",_10.name||_10.text);
  64. $(_2).searchbox("resize");
  65. };
  66. };
  67. $.fn.searchbox=function(_11,_12){
  68. if(typeof _11=="string"){
  69. var _13=$.fn.searchbox.methods[_11];
  70. if(_13){
  71. return _13(this,_12);
  72. }else{
  73. return this.textbox(_11,_12);
  74. }
  75. }
  76. _11=_11||{};
  77. return this.each(function(){
  78. var _14=$.data(this,"searchbox");
  79. if(_14){
  80. $.extend(_14.options,_11);
  81. }else{
  82. $.data(this,"searchbox",{options:$.extend({},$.fn.searchbox.defaults,$.fn.searchbox.parseOptions(this),_11)});
  83. }
  84. _1(this);
  85. });
  86. };
  87. $.fn.searchbox.methods={options:function(jq){
  88. var _15=jq.textbox("options");
  89. return $.extend($.data(jq[0],"searchbox").options,{width:_15.width,value:_15.value,originalValue:_15.originalValue,disabled:_15.disabled,readonly:_15.readonly});
  90. },menu:function(jq){
  91. return $.data(jq[0],"searchbox").menu;
  92. },getName:function(jq){
  93. return $.data(jq[0],"searchbox").searchbox.find("input.textbox-value").attr("name");
  94. },selectName:function(jq,_16){
  95. return jq.each(function(){
  96. var _17=$.data(this,"searchbox").menu;
  97. if(_17){
  98. _17.children("div.menu-item").each(function(){
  99. var _18=_17.menu("getItem",this);
  100. if(_18.name==_16){
  101. $(this).triggerHandler("click");
  102. return false;
  103. }
  104. });
  105. }
  106. });
  107. },destroy:function(jq){
  108. return jq.each(function(){
  109. var _19=$(this).searchbox("menu");
  110. if(_19){
  111. _19.menu("destroy");
  112. }
  113. $(this).textbox("destroy");
  114. });
  115. }};
  116. $.fn.searchbox.parseOptions=function(_1a){
  117. var t=$(_1a);
  118. return $.extend({},$.fn.textbox.parseOptions(_1a),$.parser.parseOptions(_1a,["menu"]),{searcher:(t.attr("searcher")?eval(t.attr("searcher")):undefined)});
  119. };
  120. $.fn.searchbox.defaults=$.extend({},$.fn.textbox.defaults,{inputEvents:$.extend({},$.fn.textbox.defaults.inputEvents,{keydown:function(e){
  121. if(e.keyCode==13){
  122. e.preventDefault();
  123. var t=$(e.data.target);
  124. var _1b=t.searchbox("options");
  125. t.searchbox("setValue",$(this).val());
  126. _1b.searcher.call(e.data.target,t.searchbox("getValue"),t.searchbox("getName"));
  127. return false;
  128. }
  129. }}),buttonAlign:"left",menu:null,searcher:function(_1c,_1d){
  130. }});
  131. })(jQuery);