Skip to content

Commit 8a6f11b

Browse files
authored
fix(dropdown): preventchangetrigger on clear for multiple
When clearing the selected items from multiple dropdown via clear method, the onChange callback triggers although the preventChange is set as true. It's because, when the dropdown is multiple selection, the clear calls the specific internal method to remove multiple selected items without forwarding the preventChange setting which results triggering the onChange callback. This PR makes the clear method to call the internal method by passing the preventChange setting which supports to prevent triggering the onChange callback.
1 parent de2ba9f commit 8a6f11b

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

src/definitions/modules/dropdown.js

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2368,7 +2368,7 @@ $.fn.dropdown = function(parameters) {
23682368

23692369
clear: function(preventChangeTrigger) {
23702370
if(module.is.multiple() && settings.useLabels) {
2371-
module.remove.labels();
2371+
module.remove.labels($module.find(selector.label), preventChangeTrigger);
23722372
}
23732373
else {
23742374
module.remove.activeItem();
@@ -3094,7 +3094,7 @@ $.fn.dropdown = function(parameters) {
30943094
userAddition: function() {
30953095
$item.filter(selector.addition).remove();
30963096
},
3097-
selected: function(value, $selectedItem) {
3097+
selected: function(value, $selectedItem, preventChangeTrigger) {
30983098
$selectedItem = (settings.allowAdditions)
30993099
? $selectedItem || module.get.itemWithAdditions(value)
31003100
: $selectedItem || module.get.item(value)
@@ -3113,11 +3113,11 @@ $.fn.dropdown = function(parameters) {
31133113
;
31143114
if(module.is.multiple()) {
31153115
if(settings.useLabels) {
3116-
module.remove.value(selectedValue, selectedText, $selected);
3116+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
31173117
module.remove.label(selectedValue);
31183118
}
31193119
else {
3120-
module.remove.value(selectedValue, selectedText, $selected);
3120+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
31213121
if(module.get.selectionCount() === 0) {
31223122
module.set.placeholderText();
31233123
}
@@ -3127,7 +3127,7 @@ $.fn.dropdown = function(parameters) {
31273127
}
31283128
}
31293129
else {
3130-
module.remove.value(selectedValue, selectedText, $selected);
3130+
module.remove.value(selectedValue, selectedText, $selected, preventChangeTrigger);
31313131
}
31323132
$selected
31333133
.removeClass(className.filtered)
@@ -3142,7 +3142,7 @@ $.fn.dropdown = function(parameters) {
31423142
selectedItem: function() {
31433143
$item.removeClass(className.selected);
31443144
},
3145-
value: function(removedValue, removedText, $removedItem) {
3145+
value: function(removedValue, removedText, $removedItem, preventChangeTrigger) {
31463146
var
31473147
values = module.get.values(),
31483148
newValue
@@ -3164,7 +3164,7 @@ $.fn.dropdown = function(parameters) {
31643164
else {
31653165
settings.onRemove.call(element, removedValue, removedText, $removedItem);
31663166
}
3167-
module.set.value(newValue, removedText, $removedItem);
3167+
module.set.value(newValue, removedText, $removedItem, preventChangeTrigger);
31683168
module.check.maxSelections();
31693169
},
31703170
arrayValue: function(removedValue, values) {
@@ -3191,7 +3191,7 @@ $.fn.dropdown = function(parameters) {
31913191
module.verbose('Removing active label selections', $activeLabels);
31923192
module.remove.labels($activeLabels);
31933193
},
3194-
labels: function($labels) {
3194+
labels: function($labels, preventChangeTrigger) {
31953195
$labels = $labels || $module.find(selector.label);
31963196
module.verbose('Removing labels', $labels);
31973197
$labels
@@ -3210,12 +3210,12 @@ $.fn.dropdown = function(parameters) {
32103210
}
32113211
module.remove.message();
32123212
if(isUserValue) {
3213-
module.remove.value(stringValue);
3213+
module.remove.value(stringValue, stringValue, module.get.item(stringValue), preventChangeTrigger);
32143214
module.remove.label(stringValue);
32153215
}
32163216
else {
32173217
// selected will also remove label
3218-
module.remove.selected(stringValue);
3218+
module.remove.selected(stringValue, false, preventChangeTrigger);
32193219
}
32203220
})
32213221
;

0 commit comments

Comments
 (0)