jquery.radiobutton.js 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. /**
  2. * EasyUI for jQuery 1.9.4
  3. *
  4. * Copyright (c) 2009-2020 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. var _1=1;
  12. function _2(_3){
  13. var _4=$("<span class=\"radiobutton inputbox\">"+"<span class=\"radiobutton-inner\" style=\"display:none\"></span>"+"<input type=\"radio\" class=\"radiobutton-value\">"+"</span>").insertAfter(_3);
  14. var t=$(_3);
  15. t.addClass("radiobutton-f").hide();
  16. var _5=t.attr("name");
  17. if(_5){
  18. t.removeAttr("name").attr("radiobuttonName",_5);
  19. _4.find(".radiobutton-value").attr("name",_5);
  20. }
  21. return _4;
  22. };
  23. function _6(_7){
  24. var _8=$.data(_7,"radiobutton");
  25. var _9=_8.options;
  26. var _a=_8.radiobutton;
  27. var _b="_easyui_radiobutton_"+(++_1);
  28. var _c=_a.find(".radiobutton-value").attr("id",_b);
  29. _c._unbind(".radiobutton")._bind("change.radiobutton",function(e){
  30. return false;
  31. });
  32. if(_9.label){
  33. if(typeof _9.label=="object"){
  34. _8.label=$(_9.label);
  35. _8.label.attr("for",_b);
  36. }else{
  37. $(_8.label).remove();
  38. _8.label=$("<label class=\"textbox-label\"></label>").html(_9.label);
  39. _8.label.css("textAlign",_9.labelAlign).attr("for",_b);
  40. if(_9.labelPosition=="after"){
  41. _8.label.insertAfter(_a);
  42. }else{
  43. _8.label.insertBefore(_7);
  44. }
  45. _8.label.removeClass("textbox-label-left textbox-label-right textbox-label-top");
  46. _8.label.addClass("textbox-label-"+_9.labelPosition);
  47. }
  48. }else{
  49. $(_8.label).remove();
  50. }
  51. $(_7).radiobutton("setValue",_9.value);
  52. _d(_7,_9.checked);
  53. _e(_7,_9.readonly);
  54. _f(_7,_9.disabled);
  55. };
  56. function _10(_11){
  57. var _12=$.data(_11,"radiobutton");
  58. var _13=_12.options;
  59. var _14=_12.radiobutton;
  60. _14._unbind(".radiobutton")._bind("click.radiobutton",function(){
  61. if(!_13.disabled&&!_13.readonly){
  62. _d(_11,true);
  63. }
  64. });
  65. };
  66. function _15(_16){
  67. var _17=$.data(_16,"radiobutton");
  68. var _18=_17.options;
  69. var _19=_17.radiobutton;
  70. _19._size(_18,_19.parent());
  71. if(_18.label&&_18.labelPosition){
  72. if(_18.labelPosition=="top"){
  73. _17.label._size({width:_18.labelWidth},_19);
  74. }else{
  75. _17.label._size({width:_18.labelWidth,height:_19.outerHeight()},_19);
  76. _17.label.css("lineHeight",_19.outerHeight()+"px");
  77. }
  78. }
  79. };
  80. function _d(_1a,_1b){
  81. if(_1b){
  82. var f=$(_1a).closest("form");
  83. var _1c=$(_1a).attr("radiobuttonName");
  84. f.find(".radiobutton-f[radiobuttonName=\""+_1c+"\"]").each(function(){
  85. if(this!=_1a){
  86. _1d(this,false);
  87. }
  88. });
  89. _1d(_1a,true);
  90. }else{
  91. _1d(_1a,false);
  92. }
  93. function _1d(b,c){
  94. var _1e=$(b).data("radiobutton");
  95. var _1f=_1e.options;
  96. var _20=_1e.radiobutton;
  97. _20.find(".radiobutton-inner").css("display",c?"":"none");
  98. _20.find(".radiobutton-value")._propAttr("checked",c);
  99. if(c){
  100. _20.addClass("radiobutton-checked");
  101. $(_1e.label).addClass("textbox-label-checked");
  102. }else{
  103. _20.removeClass("radiobutton-checked");
  104. $(_1e.label).removeClass("textbox-label-checked");
  105. }
  106. if(_1f.checked!=c){
  107. _1f.checked=c;
  108. _1f.onChange.call($(b)[0],c);
  109. $(b).closest("form").trigger("_change",[$(b)[0]]);
  110. }
  111. };
  112. };
  113. function _f(_21,_22){
  114. var _23=$.data(_21,"radiobutton");
  115. var _24=_23.options;
  116. var _25=_23.radiobutton;
  117. var rv=_25.find(".radiobutton-value");
  118. _24.disabled=_22;
  119. if(_22){
  120. $(_21).add(rv)._propAttr("disabled",true);
  121. _25.addClass("radiobutton-disabled");
  122. $(_23.label).addClass("textbox-label-disabled");
  123. }else{
  124. $(_21).add(rv)._propAttr("disabled",false);
  125. _25.removeClass("radiobutton-disabled");
  126. $(_23.label).removeClass("textbox-label-disabled");
  127. }
  128. };
  129. function _e(_26,_27){
  130. var _28=$.data(_26,"radiobutton");
  131. var _29=_28.options;
  132. _29.readonly=_27==undefined?true:_27;
  133. if(_29.readonly){
  134. _28.radiobutton.addClass("radiobutton-readonly");
  135. $(_28.label).addClass("textbox-label-readonly");
  136. }else{
  137. _28.radiobutton.removeClass("radiobutton-readonly");
  138. $(_28.label).removeClass("textbox-label-readonly");
  139. }
  140. };
  141. $.fn.radiobutton=function(_2a,_2b){
  142. if(typeof _2a=="string"){
  143. return $.fn.radiobutton.methods[_2a](this,_2b);
  144. }
  145. _2a=_2a||{};
  146. return this.each(function(){
  147. var _2c=$.data(this,"radiobutton");
  148. if(_2c){
  149. $.extend(_2c.options,_2a);
  150. }else{
  151. _2c=$.data(this,"radiobutton",{options:$.extend({},$.fn.radiobutton.defaults,$.fn.radiobutton.parseOptions(this),_2a),radiobutton:_2(this)});
  152. }
  153. _2c.options.originalChecked=_2c.options.checked;
  154. _6(this);
  155. _10(this);
  156. _15(this);
  157. });
  158. };
  159. $.fn.radiobutton.methods={options:function(jq){
  160. var _2d=jq.data("radiobutton");
  161. return $.extend(_2d.options,{value:_2d.radiobutton.find(".radiobutton-value").val()});
  162. },setValue:function(jq,_2e){
  163. return jq.each(function(){
  164. $(this).val(_2e);
  165. $.data(this,"radiobutton").radiobutton.find(".radiobutton-value").val(_2e);
  166. });
  167. },enable:function(jq){
  168. return jq.each(function(){
  169. _f(this,false);
  170. });
  171. },disable:function(jq){
  172. return jq.each(function(){
  173. _f(this,true);
  174. });
  175. },readonly:function(jq,_2f){
  176. return jq.each(function(){
  177. _e(this,_2f);
  178. });
  179. },check:function(jq){
  180. return jq.each(function(){
  181. _d(this,true);
  182. });
  183. },uncheck:function(jq){
  184. return jq.each(function(){
  185. _d(this,false);
  186. });
  187. },clear:function(jq){
  188. return jq.each(function(){
  189. _d(this,false);
  190. });
  191. },reset:function(jq){
  192. return jq.each(function(){
  193. var _30=$(this).radiobutton("options");
  194. _d(this,_30.originalChecked);
  195. });
  196. }};
  197. $.fn.radiobutton.parseOptions=function(_31){
  198. var t=$(_31);
  199. return $.extend({},$.parser.parseOptions(_31,["label","labelPosition","labelAlign",{labelWidth:"number"}]),{value:(t.val()||undefined),checked:(t.attr("checked")?true:undefined),disabled:(t.attr("disabled")?true:undefined),readonly:(t.attr("readonly")?true:undefined)});
  200. };
  201. $.fn.radiobutton.defaults={width:20,height:20,value:null,disabled:false,readonly:false,checked:false,label:null,labelWidth:"auto",labelPosition:"before",labelAlign:"left",onChange:function(_32){
  202. }};
  203. })(jQuery);