Allow setting multiple values for ButtonGroup #360
1 changed files with 22 additions and 11 deletions
|
@ -31,18 +31,29 @@ Ox.ButtonGroup = function(options, self) {
|
||||||
.options(options || {})
|
.options(options || {})
|
||||||
.update({
|
.update({
|
||||||
value: function() {
|
value: function() {
|
||||||
// fixme: this doesn't work in cases where
|
var values = Ox.makeArray(self.options.value);
|
||||||
// multiple buttons can be selected
|
|
||||||
|
var positions = [];
|
||||||
|
Ox.forEach(values, function(value) {
|
||||||
var position = Ox.getIndexById(
|
var position = Ox.getIndexById(
|
||||||
self.options.buttons, self.options.value
|
self.options.buttons, value
|
||||||
);
|
);
|
||||||
|
|
||||||
if (position > -1) {
|
if (position > -1) {
|
||||||
self.$buttons[position].trigger('click');
|
positions.push(position);
|
||||||
} else if (self.options.min == 0) {
|
|
||||||
self.$buttons.forEach(function($button, i) {
|
|
||||||
$button.options('value') && $button.trigger('click');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (positions.length < self.options.min) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Ox.forEach(self.$buttons, function(button, pos) {
|
||||||
|
var enabled = positions.indexOf(pos) > -1;
|
||||||
|
if (enabled !== button.value()) {
|
||||||
|
button.trigger('click');
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.addClass(
|
.addClass(
|
||||||
|
|
Loading…
Reference in a new issue