@@ -4,6 +4,7 @@ import ValueState from "@ui5/webcomponents-base/dist/types/ValueState.js";
4
4
import { isShow , isDown , isBackSpace } from "@ui5/webcomponents-base/dist/events/PseudoEvents.js" ;
5
5
import "./icons/slim-arrow-down.js" ;
6
6
import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js" ;
7
+ import { isIE } from "@ui5/webcomponents-core/dist/sap/ui/Device.js" ;
7
8
import MultiComboBoxTemplate from "./generated/templates/MultiComboBoxTemplate.lit.js" ;
8
9
import Tokenizer from "./Tokenizer.js" ;
9
10
import Token from "./Token.js" ;
@@ -277,7 +278,20 @@ class MultiComboBox extends UI5Element {
277
278
const filteredItems = this . _filterItems ( value ) ;
278
279
const oldValueState = this . valueState ;
279
280
281
+ /* skip calling change event when an input with a placeholder is focused on IE
282
+ - value of the host and the internal input should be differnt in case of actual input
283
+ - input is called when a key is pressed => keyup should not be called yet
284
+ */
285
+ const skipFiring = ( this . _inputDom . value === this . value ) && isIE && ! this . _keyDown && ! ! this . placeholder ;
286
+
287
+ if ( skipFiring ) {
288
+ event . preventDefault ( ) ;
289
+
290
+ return ;
291
+ }
292
+
280
293
if ( this . _validationTimeout ) {
294
+ input . value = this . _inputLastValue ;
281
295
return ;
282
296
}
283
297
@@ -289,6 +303,7 @@ class MultiComboBox extends UI5Element {
289
303
this . valueState = oldValueState ;
290
304
this . _validationTimeout = null ;
291
305
} , 2000 ) ;
306
+
292
307
return ;
293
308
}
294
309
@@ -330,7 +345,11 @@ class MultiComboBox extends UI5Element {
330
345
}
331
346
}
332
347
333
- _keydown ( event ) {
348
+ _onkeyup ( ) {
349
+ this . _keyDown = false ;
350
+ }
351
+
352
+ _onkeydown ( event ) {
334
353
if ( isShow ( event ) && ! this . readonly && ! this . disabled ) {
335
354
event . preventDefault ( ) ;
336
355
this . _togglePopover ( ) ;
@@ -355,6 +374,8 @@ class MultiComboBox extends UI5Element {
355
374
this . _tokenizer . tokens [ lastTokenIndex ] . focus ( ) ;
356
375
this . _tokenizer . _itemNav . currentIndex = lastTokenIndex ;
357
376
}
377
+
378
+ this . _keyDown = true ;
358
379
}
359
380
360
381
_filterItems ( value ) {
0 commit comments