@@ -51,6 +51,7 @@ import {
5151} from './util' ;
5252import { SelectPropTypes } from './PropTypes' ;
5353import contains from '../_util/Dom/contains' ;
54+ import { isIE , isEdge } from '../_util/env' ;
5455
5556Vue . use ( ref , { name : 'ant-ref' } ) ;
5657const SELECT_EMPTY_VALUE_KEY = 'RC_SELECT_EMPTY_VALUE_KEY' ;
@@ -463,6 +464,7 @@ const Select = {
463464 onArrowClick ( e ) {
464465 e . stopPropagation ( ) ;
465466 e . preventDefault ( ) ;
467+ this . clearBlurTime ( ) ;
466468 if ( ! this . disabled ) {
467469 this . setOpenState ( ! this . $data . _open , ! this . $data . _open ) ;
468470 }
@@ -640,12 +642,17 @@ const Select = {
640642 } ,
641643 inputBlur ( e ) {
642644 const target = e . relatedTarget || document . activeElement ;
645+
646+ // https://github.com/vueComponent/ant-design-vue/issues/999
647+ // https://github.com/vueComponent/ant-design-vue/issues/1223
643648 if (
644- ( target &&
645- this . selectTriggerRef &&
646- this . selectTriggerRef . getInnerMenu ( ) &&
647- this . selectTriggerRef . getInnerMenu ( ) . $el === target ) ||
648- contains ( e . target , target )
649+ ( isIE || isEdge ) &&
650+ ( e . relatedTarget === this . $refs . arrow ||
651+ ( target &&
652+ this . selectTriggerRef &&
653+ this . selectTriggerRef . getInnerMenu ( ) &&
654+ this . selectTriggerRef . getInnerMenu ( ) . $el === target ) ||
655+ contains ( e . target , target ) )
649656 ) {
650657 e . target . focus ( ) ;
651658 e . preventDefault ( ) ;
@@ -701,7 +708,7 @@ const Select = {
701708 }
702709 this . setOpenState ( false ) ;
703710 this . $emit ( 'blur' , this . getVLForOnChange ( value ) ) ;
704- } , 10 ) ;
711+ } , 200 ) ;
705712 } ,
706713 inputFocus ( e ) {
707714 if ( this . $props . disabled ) {
@@ -1434,6 +1441,7 @@ const Select = {
14341441 style = { UNSELECTABLE_STYLE }
14351442 { ...{ attrs : UNSELECTABLE_ATTRIBUTE } }
14361443 onClick = { this . onArrowClick }
1444+ ref = "arrow"
14371445 >
14381446 { inputIcon || defaultIcon }
14391447 </ span >
0 commit comments