Only trigger unselect
for multiple
This fixes an issue where an `unselect` event would be incorrectly triggered when the selected option was selected again in a single select. This has been fixed now, so the even will only be triggered for multiple selects. The `close` event will still be triggered though, so the functionality will still remain the same to the user. This closes https://github.com/select2/select2/issues/2959.
This commit is contained in:
parent
bca4e1f6d8
commit
981c4065af
29
dist/js/select2.amd.full.js
vendored
29
dist/js/select2.amd.full.js
vendored
@ -479,9 +479,13 @@ define('select2/results',[
|
||||
var data = $highlighted.data('data');
|
||||
|
||||
if ($highlighted.attr('aria-selected') == 'true') {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
} else {
|
||||
self.trigger('select', {
|
||||
data: data
|
||||
@ -597,10 +601,14 @@ define('select2/results',[
|
||||
var data = $this.data('data');
|
||||
|
||||
if ($this.attr('aria-selected') === 'true') {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@ -3632,6 +3640,13 @@ define('select2/defaults',[
|
||||
HidePlaceholder
|
||||
);
|
||||
}
|
||||
|
||||
if (options.selectOnClose) {
|
||||
options.resultsAdapter = Utils.Decorate(
|
||||
options.resultsAdapter,
|
||||
SelectOnClose
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.dropdownAdapter == null) {
|
||||
|
29
dist/js/select2.amd.js
vendored
29
dist/js/select2.amd.js
vendored
@ -479,9 +479,13 @@ define('select2/results',[
|
||||
var data = $highlighted.data('data');
|
||||
|
||||
if ($highlighted.attr('aria-selected') == 'true') {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
} else {
|
||||
self.trigger('select', {
|
||||
data: data
|
||||
@ -597,10 +601,14 @@ define('select2/results',[
|
||||
var data = $this.data('data');
|
||||
|
||||
if ($this.attr('aria-selected') === 'true') {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@ -3632,6 +3640,13 @@ define('select2/defaults',[
|
||||
HidePlaceholder
|
||||
);
|
||||
}
|
||||
|
||||
if (options.selectOnClose) {
|
||||
options.resultsAdapter = Utils.Decorate(
|
||||
options.resultsAdapter,
|
||||
SelectOnClose
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.dropdownAdapter == null) {
|
||||
|
29
dist/js/select2.full.js
vendored
29
dist/js/select2.full.js
vendored
@ -917,9 +917,13 @@ define('select2/results',[
|
||||
var data = $highlighted.data('data');
|
||||
|
||||
if ($highlighted.attr('aria-selected') == 'true') {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
} else {
|
||||
self.trigger('select', {
|
||||
data: data
|
||||
@ -1035,10 +1039,14 @@ define('select2/results',[
|
||||
var data = $this.data('data');
|
||||
|
||||
if ($this.attr('aria-selected') === 'true') {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@ -4070,6 +4078,13 @@ define('select2/defaults',[
|
||||
HidePlaceholder
|
||||
);
|
||||
}
|
||||
|
||||
if (options.selectOnClose) {
|
||||
options.resultsAdapter = Utils.Decorate(
|
||||
options.resultsAdapter,
|
||||
SelectOnClose
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.dropdownAdapter == null) {
|
||||
|
4
dist/js/select2.full.min.js
vendored
4
dist/js/select2.full.min.js
vendored
File diff suppressed because one or more lines are too long
29
dist/js/select2.js
vendored
29
dist/js/select2.js
vendored
@ -917,9 +917,13 @@ define('select2/results',[
|
||||
var data = $highlighted.data('data');
|
||||
|
||||
if ($highlighted.attr('aria-selected') == 'true') {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
} else {
|
||||
self.trigger('select', {
|
||||
data: data
|
||||
@ -1035,10 +1039,14 @@ define('select2/results',[
|
||||
var data = $this.data('data');
|
||||
|
||||
if ($this.attr('aria-selected') === 'true') {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
@ -4070,6 +4078,13 @@ define('select2/defaults',[
|
||||
HidePlaceholder
|
||||
);
|
||||
}
|
||||
|
||||
if (options.selectOnClose) {
|
||||
options.resultsAdapter = Utils.Decorate(
|
||||
options.resultsAdapter,
|
||||
SelectOnClose
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (options.dropdownAdapter == null) {
|
||||
|
4
dist/js/select2.min.js
vendored
4
dist/js/select2.min.js
vendored
File diff suppressed because one or more lines are too long
22
src/js/select2/results.js
vendored
22
src/js/select2/results.js
vendored
@ -281,9 +281,13 @@ define([
|
||||
var data = $highlighted.data('data');
|
||||
|
||||
if ($highlighted.attr('aria-selected') == 'true') {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
} else {
|
||||
self.trigger('select', {
|
||||
data: data
|
||||
@ -399,10 +403,14 @@ define([
|
||||
var data = $this.data('data');
|
||||
|
||||
if ($this.attr('aria-selected') === 'true') {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
if (self.options.get('multiple')) {
|
||||
self.trigger('unselect', {
|
||||
originalEvent: evt,
|
||||
data: data
|
||||
});
|
||||
} else {
|
||||
self.trigger('close');
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user