diff --git a/src/definitions/modules/checkbox.js b/src/definitions/modules/checkbox.js index e34ebde57..ca7581401 100644 --- a/src/definitions/modules/checkbox.js +++ b/src/definitions/modules/checkbox.js @@ -59,8 +59,6 @@ $.fn.checkbox = function(parameters) { module.create.label(); module.add.events(); - console.log($input); - if( module.is.checked() ) { module.set.checked(); if(settings.fireOnInit) { @@ -156,9 +154,18 @@ $.fn.checkbox = function(parameters) { } }, + get: { + radios: function() { + return $('input[name="' + module.get.name() + '"]').closest(selector.checkbox); + }, + name: function() { + return $input.attr('name'); + } + }, + is: { radio: function() { - return $module.hasClass(className.radio); + return ($input.hasClass(className.radio) || $input.attr('type') == 'radio'); }, checked: function() { return $input.prop('checked') !== undefined && $input.prop('checked'); @@ -182,6 +189,14 @@ $.fn.checkbox = function(parameters) { set: { checked: function() { + var + $radios + ; + if( module.is.radio() ) { + $radios = module.get.radios(); + module.debug('Unchecking other radios', $radios); + $radios.removeClass(className.checked); + } $module.addClass(className.checked); }, tab: function() { @@ -245,14 +260,14 @@ $.fn.checkbox = function(parameters) { module.debug('Enabling checkbox functionality'); $module.removeClass(className.disabled); $input.prop('disabled', false); - settings.onEnabled.call($input.get()); + settings.onEnabled.call($input[0]); }, disable: function() { module.debug('Disabling checkbox functionality'); $module.addClass(className.disabled); $input.prop('disabled', 'disabled'); - settings.onDisabled.call($input.get()); + settings.onDisabled.call($input[0]); }, check: function() { @@ -263,8 +278,8 @@ $.fn.checkbox = function(parameters) { ; module.set.checked(); $input.trigger('blur'); - settings.onChange.call($input.get()); - settings.onChecked.call($input.get()); + settings.onChange.call($input[0]); + settings.onChecked.call($input[0]); }, uncheck: function() { @@ -275,13 +290,12 @@ $.fn.checkbox = function(parameters) { ; module.remove.checked(); $input.trigger('blur'); - settings.onChange.call($input.get()); - settings.onUnchecked.call($input.get()); + settings.onChange.call($input[0]); + settings.onUnchecked.call($input[0]); }, toggle: function(event) { if( !module.can.change() ) { - console.log(module.can.change()); if(!module.is.radio()) { module.debug('Checkbox is read-only or disabled, ignoring toggle'); } @@ -503,8 +517,9 @@ $.fn.checkbox.settings = { }, selector : { - input : '> input[type="checkbox"], > input[type="radio"]', - label : '> label' + checkbox : '.ui.checkbox', + input : '> input[type="checkbox"], > input[type="radio"]', + label : '> label' } };