File tree Expand file tree Collapse file tree 1 file changed +30
-14
lines changed
Expand file tree Collapse file tree 1 file changed +30
-14
lines changed Original file line number Diff line number Diff line change 2424 input . _tagsContainer = tags ;
2525 input . _tagsSelect = el ;
2626
27- input . addEventListener ( 'keydown' , ( e ) => {
28-
29- const ENTER_KEY = 13 ;
30- const COMMA_KEY = 188 ;
31- const TAB_KEY = 9 ;
32-
33- if ( ! [ ENTER_KEY , COMMA_KEY , TAB_KEY ] . includes ( e . keyCode ) ) {
34- return ;
35- }
36-
37- if ( [ TAB_KEY , COMMA_KEY ] . includes ( e . keyCode ) ) {
38- e . preventDefault ( ) ;
39- }
27+ const handleInput = ( ) => {
4028
4129 const results = input . _tagsContainer . querySelector ( 'ul.chzn-results' ) ;
4230 let alreadyExists = Boolean ( results . querySelector ( 'li.highlighted' ) ) ;
4331
4432 if ( ! alreadyExists ) {
4533 alreadyExists = [ ...input . _tagsSelect . querySelectorAll ( 'option' ) ] . some ( option => option . value === input . value ) ;
46-
4734 }
35+
4836 if ( ! alreadyExists ) {
4937
5038 // prevent user from adding new tag if prohibited
7260
7361 initTagsSelector ( input . _tagsSelect ) ;
7462 }
63+ } ;
64+
65+ input . addEventListener ( 'input' , ( e ) => {
66+
67+ if ( e . data !== ',' ) {
68+ return ;
69+ }
70+
71+ input . value = input . value . slice ( 0 , - 1 ) ;
72+ handleInput ( ) ;
73+ } ) ;
74+
75+ input . addEventListener ( 'keydown' , ( e ) => {
76+
77+ const ENTER_KEY = 13 ;
78+ const COMMA_KEY = 188 ;
79+ const COMMA_KEY_NUMPAD = 108 ;
80+ const TAB_KEY = 9 ;
81+
82+ if ( ! [ ENTER_KEY , COMMA_KEY , COMMA_KEY_NUMPAD , TAB_KEY ] . includes ( e . keyCode ) ) {
83+ return ;
84+ }
85+
86+ if ( [ TAB_KEY , COMMA_KEY , COMMA_KEY_NUMPAD ] . includes ( e . keyCode ) ) {
87+ e . preventDefault ( ) ;
88+ }
89+
90+ handleInput ( ) ;
7591 } ) ;
7692 } ;
7793
You can’t perform that action at this time.
0 commit comments