@@ -57,6 +57,7 @@ Cleave.prototype = {
57
57
58
58
owner . isAndroid = Cleave . Util . isAndroid ( ) ;
59
59
owner . lastInputValue = '' ;
60
+ owner . isBackward = '' ;
60
61
61
62
owner . onChangeListener = owner . onChange . bind ( owner ) ;
62
63
owner . onKeyDownListener = owner . onKeyDown . bind ( owner ) ;
@@ -166,38 +167,34 @@ Cleave.prototype = {
166
167
} ,
167
168
168
169
onKeyDown : function ( event ) {
170
+ var owner = this ,
171
+ charCode = event . which || event . keyCode ;
172
+
173
+ owner . lastInputValue = owner . element . value ;
174
+ owner . isBackward = charCode === 8 ;
175
+ } ,
176
+
177
+ onChange : function ( event ) {
169
178
var owner = this , pps = owner . properties ,
170
- charCode = event . which || event . keyCode ,
171
- Util = Cleave . Util ,
172
- currentValue = owner . element . value ;
173
-
174
- // if we got any charCode === 8, this means, that this device correctly
175
- // sends backspace keys in event, so we do not need to apply any hacks
176
- owner . hasBackspaceSupport = owner . hasBackspaceSupport || charCode === 8 ;
177
- if ( ! owner . hasBackspaceSupport
178
- && Util . isAndroidBackspaceKeydown ( owner . lastInputValue , currentValue )
179
- ) {
180
- charCode = 8 ;
181
- }
179
+ Util = Cleave . Util ;
182
180
183
- owner . lastInputValue = currentValue ;
181
+ owner . isBackward = owner . isBackward || event . inputType === "deleteContentBackward" ;
184
182
185
- // hit backspace when last character is delimiter
186
- var postDelimiter = Util . getPostDelimiter ( currentValue , pps . delimiter , pps . delimiters ) ;
187
- if ( charCode === 8 && postDelimiter ) {
183
+ var postDelimiter = Util . getPostDelimiter ( owner . lastInputValue , pps . delimiter , pps . delimiters ) ;
184
+
185
+ if ( owner . isBackward && postDelimiter ) {
188
186
pps . postDelimiterBackspace = postDelimiter ;
189
187
} else {
190
188
pps . postDelimiterBackspace = false ;
191
189
}
192
- } ,
193
190
194
- onChange : function ( ) {
195
191
this . onInput ( this . element . value ) ;
196
192
} ,
197
193
198
194
onFocus : function ( ) {
199
195
var owner = this ,
200
196
pps = owner . properties ;
197
+ owner . lastInputValue = owner . element . value ;
201
198
202
199
if ( pps . prefix && pps . noImmediatePrefix && ! owner . element . value ) {
203
200
this . onInput ( pps . prefix ) ;
0 commit comments