Browse Source

Fixes #1929, radio checkboxes remove checked class from other radios on checked

pull/2034/head
jlukic 9 years ago
parent
commit
6dfc5250c1
1 changed files with 27 additions and 12 deletions
  1. 39
      src/definitions/modules/checkbox.js

39
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'
}
};

Loading…
Cancel
Save