From 68d068f1d2c7722d011d285a291d1f974bf09772 Mon Sep 17 00:00:00 2001 From: Kevin Brown Date: Wed, 19 Aug 2015 21:01:19 -0400 Subject: [PATCH] Prevent selections from being removed when disabled This prevents selections from being removed when the container is disabled. This stops any click events that are triggered on the remove button, so the remove handler won't be triggered at all. This closes https://github.com/select2/select2/pull/3636. --- src/js/select2/selection/multiple.js | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/js/select2/selection/multiple.js b/src/js/select2/selection/multiple.js index d73c28b8..ae0f7cce 100644 --- a/src/js/select2/selection/multiple.js +++ b/src/js/select2/selection/multiple.js @@ -32,18 +32,26 @@ define([ }); }); - this.$selection.on('click', '.select2-selection__choice__remove', + this.$selection.on( + 'click', + '.select2-selection__choice__remove', function (evt) { - var $remove = $(this); - var $selection = $remove.parent(); + // Ignore the event if it is disabled + if (self.options.get('disabled')) { + return; + } - var data = $selection.data('data'); + var $remove = $(this); + var $selection = $remove.parent(); - self.trigger('unselect', { - originalEvent: evt, - data: data - }); - }); + var data = $selection.data('data'); + + self.trigger('unselect', { + originalEvent: evt, + data: data + }); + } + ); }; MultipleSelection.prototype.clear = function () {