45 lines
891 B
JavaScript
45 lines
891 B
JavaScript
(function($, undefined){
|
|
|
|
var Field = acf.Field.extend({
|
|
|
|
type: 'button_group',
|
|
|
|
events: {
|
|
'click input[type="radio"]': 'onClick'
|
|
},
|
|
|
|
$control: function(){
|
|
return this.$('.acf-button-group');
|
|
},
|
|
|
|
$input: function(){
|
|
return this.$('input:checked');
|
|
},
|
|
|
|
setValue: function( val ){
|
|
this.$('input[value="' + val + '"]').prop('checked', true).trigger('change');
|
|
},
|
|
|
|
onClick: function( e, $el ){
|
|
|
|
// vars
|
|
var $label = $el.parent('label');
|
|
var selected = $label.hasClass('selected');
|
|
|
|
// remove previous selected
|
|
this.$('.selected').removeClass('selected');
|
|
|
|
// add active class
|
|
$label.addClass('selected');
|
|
|
|
// allow null
|
|
if( this.get('allow_null') && selected ) {
|
|
$label.removeClass('selected');
|
|
$el.prop('checked', false).trigger('change');
|
|
}
|
|
}
|
|
});
|
|
|
|
acf.registerFieldType( Field );
|
|
|
|
})(jQuery); |