jquery.checkbox.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. /**
  2. * EasyUI for jQuery 1.8.3
  3. *
  4. * Copyright (c) 2009-2019 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=\"checkbox inputbox\">"+"<span class=\"checkbox-inner\">"+"<svg xml:space=\"preserve\" focusable=\"false\" version=\"1.1\" viewBox=\"0 0 24 24\"><path d=\"M4.1,12.7 9,17.6 20.3,6.3\" fill=\"none\" stroke=\"white\"></path></svg>"+"</span>"+"<input type=\"checkbox\" class=\"checkbox-value\">"+"</span>").insertAfter(_3);
  14. var t=$(_3);
  15. t.addClass("checkbox-f").hide();
  16. var _5=t.attr("name");
  17. if(_5){
  18. t.removeAttr("name").attr("checkboxName",_5);
  19. _4.find(".checkbox-value").attr("name",_5);
  20. }
  21. return _4;
  22. };
  23. function _6(_7){
  24. var _8=$.data(_7,"checkbox");
  25. var _9=_8.options;
  26. var _a=_8.checkbox;
  27. var _b="_easyui_checkbox_"+(++_1);
  28. var _c=_a.find(".checkbox-value").attr("id",_b);
  29. _c.unbind(".checkbox").bind("change.checkbox",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).checkbox("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,"checkbox");
  58. var _13=_12.options;
  59. var _14=_12.checkbox;
  60. _14.unbind(".checkbox").bind("click.checkbox",function(){
  61. if(!_13.disabled&&!_13.readonly){
  62. _d(_11,!_13.checked);
  63. }
  64. });
  65. };
  66. function _15(_16){
  67. var _17=$.data(_16,"checkbox");
  68. var _18=_17.options;
  69. var _19=_17.checkbox;
  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. var _1c=$.data(_1a,"checkbox");
  82. var _1d=_1c.options;
  83. var _1e=_1c.checkbox;
  84. _1e.find(".checkbox-value")._propAttr("checked",_1b);
  85. var _1f=_1e.find(".checkbox-inner").css("display",_1b?"":"none");
  86. if(_1b){
  87. _1f.addClass("checkbox-checked");
  88. }else{
  89. _1f.removeClass("checkbox-checked");
  90. }
  91. if(_1d.checked!=_1b){
  92. _1d.checked=_1b;
  93. _1d.onChange.call(_1a,_1b);
  94. $(_1a).closest("form").trigger("_change",[_1a]);
  95. }
  96. };
  97. function _e(_20,_21){
  98. var _22=$.data(_20,"checkbox");
  99. var _23=_22.options;
  100. _23.readonly=_21==undefined?true:_21;
  101. _22.checkbox.removeClass("checkbox-readonly").addClass(_23.readonly?"checkbox-readonly":"");
  102. };
  103. function _f(_24,_25){
  104. var _26=$.data(_24,"checkbox");
  105. var _27=_26.options;
  106. var _28=_26.checkbox;
  107. var rv=_28.find(".checkbox-value");
  108. _27.disabled=_25;
  109. if(_25){
  110. $(_24).add(rv)._propAttr("disabled",true);
  111. _28.addClass("checkbox-disabled");
  112. $(_26.label).addClass("textbox-label-disabled");
  113. }else{
  114. $(_24).add(rv)._propAttr("disabled",false);
  115. _28.removeClass("checkbox-disabled");
  116. $(_26.label).removeClass("textbox-label-disabled");
  117. }
  118. };
  119. $.fn.checkbox=function(_29,_2a){
  120. if(typeof _29=="string"){
  121. return $.fn.checkbox.methods[_29](this,_2a);
  122. }
  123. _29=_29||{};
  124. return this.each(function(){
  125. var _2b=$.data(this,"checkbox");
  126. if(_2b){
  127. $.extend(_2b.options,_29);
  128. }else{
  129. _2b=$.data(this,"checkbox",{options:$.extend({},$.fn.checkbox.defaults,$.fn.checkbox.parseOptions(this),_29),checkbox:_2(this)});
  130. }
  131. _2b.options.originalChecked=_2b.options.checked;
  132. _6(this);
  133. _10(this);
  134. _15(this);
  135. });
  136. };
  137. $.fn.checkbox.methods={options:function(jq){
  138. var _2c=jq.data("checkbox");
  139. return $.extend(_2c.options,{value:_2c.checkbox.find(".checkbox-value").val()});
  140. },setValue:function(jq,_2d){
  141. return jq.each(function(){
  142. $(this).val(_2d);
  143. $.data(this,"checkbox").checkbox.find(".checkbox-value").val(_2d);
  144. });
  145. },enable:function(jq){
  146. return jq.each(function(){
  147. _f(this,false);
  148. });
  149. },disable:function(jq){
  150. return jq.each(function(){
  151. _f(this,true);
  152. });
  153. },readonly:function(jq,_2e){
  154. return jq.each(function(){
  155. _e(this,_2e);
  156. });
  157. },check:function(jq){
  158. return jq.each(function(){
  159. _d(this,true);
  160. });
  161. },uncheck:function(jq){
  162. return jq.each(function(){
  163. _d(this,false);
  164. });
  165. },clear:function(jq){
  166. return jq.each(function(){
  167. _d(this,false);
  168. });
  169. },reset:function(jq){
  170. return jq.each(function(){
  171. var _2f=$(this).checkbox("options");
  172. _d(this,_2f.originalChecked);
  173. });
  174. }};
  175. $.fn.checkbox.parseOptions=function(_30){
  176. var t=$(_30);
  177. return $.extend({},$.parser.parseOptions(_30,["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)});
  178. };
  179. $.fn.checkbox.defaults={width:20,height:20,value:null,disabled:false,readonly:false,checked:false,label:null,labelWidth:"auto",labelPosition:"before",labelAlign:"left",onChange:function(_31){
  180. }};
  181. })(jQuery);