@@ -12,7 +12,7 @@ import { updateModel } from './updateDataHandle'
12
12
13
13
export function updateDataEvents ( dom , data ) {
14
14
var events = { }
15
- //添加需要监听的事件
15
+ //添加需要监听的事件
16
16
switch ( data . dtype ) {
17
17
case 'radio' :
18
18
case 'checkbox' :
@@ -25,7 +25,7 @@ export function updateDataEvents(dom, data) {
25
25
/* istanbul ignore if */
26
26
if ( data . isChanged ) {
27
27
events . blur = updateModel
28
- /* istanbul ignore else */
28
+ /* istanbul ignore else */
29
29
} else {
30
30
/* istanbul ignore if*/
31
31
@@ -38,7 +38,7 @@ export function updateDataEvents(dom, data) {
38
38
events . DOMCharacterDataModified = updateModel
39
39
}
40
40
events . input = updateModel
41
- /* istanbul ignore else */
41
+ /* istanbul ignore else */
42
42
} else {
43
43
events . keydown = updateModelKeyDown
44
44
events . paste = updateModelDelay
@@ -53,29 +53,29 @@ export function updateDataEvents(dom, data) {
53
53
/* istanbul ignore if */
54
54
if ( data . isChanged ) {
55
55
events . change = updateModel
56
- /* istanbul ignore else */
56
+ /* istanbul ignore else */
57
57
} else {
58
58
//http://www.cnblogs.com/rubylouvre/archive/2013/02/17/2914604.html
59
59
//http://www.matts411.com/post/internet-explorer-9-oninput/
60
60
if ( msie < 10 ) {
61
- //IE6-8的propertychange有BUG ,第一次用JS修改值时不会触发,而且你是全部清空value也不会触发
61
+ //IE6-8的propertychange有问题 ,第一次用JS修改值时不会触发,而且你是全部清空value也不会触发
62
62
//IE9的propertychange不支持自动完成,退格,删除,复制,贴粘,剪切或点击右边的小X的清空操作
63
63
events . propertychange = updateModelHack
64
64
events . paste = updateModelDelay
65
65
events . cut = updateModelDelay
66
- //IE9在第一次删除字符时不会触发oninput
66
+ //IE9在第一次删除字符时不会触发oninput
67
67
events . keyup = updateModelKeyDown
68
68
} else {
69
69
events . input = updateModel
70
70
events . compositionstart = openComposition
71
- //微软拼音输入法的BUG需要在compositionend事件中处理
71
+ //微软拼音输入法的问题需要在compositionend事件中处理
72
72
events . compositionend = closeComposition
73
- //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
74
- //处理低版本的标准浏览器,通过Int8Array进行区分
73
+ //https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray
74
+ //处理低版本的标准浏览器,通过Int8Array进行区分
75
75
if ( ! / \[ n a t i v e c o d e \] / . test ( window . Int8Array ) ) {
76
76
events . keydown = updateModelKeyDown //safari < 5 opera < 11
77
- events . paste = updateModelDelay //safari < 5
78
- events . cut = updateModelDelay //safari < 5
77
+ events . paste = updateModelDelay //safari < 5
78
+ events . cut = updateModelDelay //safari < 5
79
79
if ( window . netscape ) {
80
80
// Firefox <= 3.6 doesn't fire the 'input' event when text is filled in through autocomplete
81
81
events . DOMAutoComplete = updateModel
@@ -107,7 +107,7 @@ function updateModelHack(e) {
107
107
108
108
function updateModelDelay ( e ) {
109
109
var elem = this
110
- setTimeout ( function ( ) {
110
+ setTimeout ( function ( ) {
111
111
updateModel . call ( elem , e )
112
112
} , 0 )
113
113
}
@@ -132,8 +132,8 @@ function closeComposition(e) {
132
132
/* istanbul ignore next */
133
133
function updateModelKeyDown ( e ) {
134
134
var key = e . keyCode
135
- // ignore
136
- // command modifiers arrows
135
+ // ignore
136
+ // command modifiers arrows
137
137
if ( key === 91 || ( 15 < key && key < 19 ) || ( 37 <= key && key <= 40 ) )
138
138
return
139
139
updateModel . call ( this , e )
@@ -149,14 +149,14 @@ markID(updateModelDelay)
149
149
markID ( updateModelKeyDown )
150
150
151
151
//IE6-8要处理光标时需要异步
152
- var mayBeAsync = function ( fn ) {
153
- setTimeout ( fn , 0 )
154
- }
155
- /* istanbul ignore next */
152
+ var mayBeAsync = function ( fn ) {
153
+ setTimeout ( fn , 0 )
154
+ }
155
+ /* istanbul ignore next */
156
156
function setCaret ( target , cursorPosition ) {
157
157
var range
158
158
if ( target . createTextRange ) {
159
- mayBeAsync ( function ( ) {
159
+ mayBeAsync ( function ( ) {
160
160
target . focus ( )
161
161
range = target . createTextRange ( )
162
162
range . collapse ( true )
@@ -171,7 +171,7 @@ function setCaret(target, cursorPosition) {
171
171
}
172
172
}
173
173
}
174
- /* istanbul ignore next*/
174
+ /* istanbul ignore next*/
175
175
function getCaret ( target ) {
176
176
var start = 0
177
177
var normalizedValue
@@ -180,12 +180,12 @@ function getCaret(target) {
180
180
var len
181
181
var endRange
182
182
183
- if ( typeof target . selectionStart == 'number' && typeof target . selectionEnd == 'number' ) {
183
+ if ( target . selectionStart + target . selectionEnd > - 1 ) {
184
184
start = target . selectionStart
185
185
} else {
186
186
range = document . selection . createRange ( )
187
187
188
- if ( range && range . parentElement ( ) == target ) {
188
+ if ( range && range . parentElement ( ) === target ) {
189
189
len = target . value . length
190
190
normalizedValue = target . value . replace ( / \r \n / g, '\n' )
191
191
@@ -205,5 +205,4 @@ function getCaret(target) {
205
205
}
206
206
207
207
return start
208
- }
209
-
208
+ }
0 commit comments