@@ -27,6 +27,8 @@ _getValue = ->
27
27
descriptor (" HTMLTextAreaElement" , " value" ).get
28
28
when isSelect (this )
29
29
descriptor (" HTMLSelectElement" , " value" ).get
30
+ when isButton (this )
31
+ descriptor (" HTMLButtonElement" , " value" ).get
30
32
else
31
33
# # is an option element
32
34
descriptor (" HTMLOptionElement" , " value" ).get
@@ -39,6 +41,8 @@ _setValue = ->
39
41
descriptor (" HTMLTextAreaElement" , " value" ).set
40
42
when isSelect (this )
41
43
descriptor (" HTMLSelectElement" , " value" ).set
44
+ when isButton (this )
45
+ descriptor (" HTMLButtonElement" , " value" ).set
42
46
else
43
47
# # is an options element
44
48
descriptor (" HTMLOptionElement" , " value" ).set
@@ -98,19 +102,34 @@ _isContentEditable = ->
98
102
else
99
103
descriptor (" HTMLElement" , " isContentEditable" ).get
100
104
105
+ _setType = ->
106
+ switch
107
+ when isInput (this )
108
+ descriptor (" HTMLInputElement" , " type" ).set
109
+ when isButton (this )
110
+ descriptor (" HTMLButtonElement" , " type" ).set
111
+
112
+
113
+ _getType = ->
114
+ switch
115
+ when isInput (this )
116
+ descriptor (" HTMLInputElement" , " type" ).get
117
+ when isButton (this )
118
+ descriptor (" HTMLButtonElement" , " type" ).get
119
+
101
120
nativeGetters = {
102
121
value : _getValue
103
122
selectionStart : descriptor (" HTMLInputElement" , " selectionStart" ).get
104
123
isContentEditable : _isContentEditable
105
124
isCollapsed : descriptor (" Selection" , ' isCollapsed' ).get
106
125
selectionStart : _getSelectionStart
107
126
selectionEnd : _getSelectionEnd
108
- type : descriptor ( " HTMLInputElement " , " type " ). get
127
+ type : _getType
109
128
}
110
129
111
130
nativeSetters = {
112
131
value : _setValue
113
- type : descriptor ( " HTMLInputElement " , " type " ). set
132
+ type : _setType
114
133
}
115
134
116
135
nativeMethods = {
@@ -199,6 +218,9 @@ isTextarea = (el) ->
199
218
isInput = (el ) ->
200
219
getTagName (el) is ' input'
201
220
221
+ isButton = (el ) ->
222
+ getTagName (el) is ' button'
223
+
202
224
isSelect = (el ) ->
203
225
getTagName (el) is ' select'
204
226
@@ -223,11 +245,11 @@ isElement = (obj) ->
223
245
isFocusable = ($el ) ->
224
246
$el .is (focusable)
225
247
226
- isInputType = ($el , type ) ->
248
+ isType = ($el , type ) ->
227
249
el = [].concat ($jquery .unwrap ($el))[0 ]
228
250
# # NOTE: use DOMElement.type instead of getAttribute('type') since
229
251
# # <input type="asdf"> will have type="text", and behaves like text type
230
- isInput (el) && (getNativeProp (el, ' type' ) or " " ).toLowerCase () is type
252
+ (getNativeProp (el, ' type' ) or " " ).toLowerCase () is type
231
253
232
254
isScrollOrAuto = (prop ) ->
233
255
prop is " scroll" or prop is " auto"
@@ -287,7 +309,7 @@ isSame = ($el1, $el2) ->
287
309
288
310
isTextLike = ($el ) ->
289
311
sel = (selector ) -> isSelector ($el, selector)
290
- type = (type ) -> isInputType ($el, type)
312
+ type = (type ) -> isType ($el, type)
291
313
292
314
isContentEditableElement = isContentEditable ($el .get (0 ))
293
315
@@ -544,7 +566,7 @@ module.exports = {
544
566
545
567
isTextarea
546
568
547
- isInputType
569
+ isType
548
570
549
571
isNeedSingleValueChangeInputElement
550
572
0 commit comments