Skip to content

Commit 9704154

Browse files
committed
fix vuejs#670 honor number option for select with multiple attribute
1 parent 515195a commit 9704154

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/directives/model/select.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ module.exports = {
1818
? getMultiValue(el)
1919
: el.value
2020
value = self.number
21-
? _.toNumber(value)
21+
? _.isArray(value)
22+
? value.map(_.toNumber)
23+
: _.toNumber(value)
2224
: value
2325
self.set(value, true)
2426
}

test/unit/specs/directives/model_spec.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,22 @@ if (_.inBrowser) {
286286
expect(vm.test).toBe(1)
287287
})
288288

289+
it('select + number + multiple', function () {
290+
var vm = new Vue({
291+
el: el,
292+
data: {
293+
test: []
294+
},
295+
template: '<select v-model="test" multiple number><option>1</option><option>2</option></select>'
296+
})
297+
;[].forEach.call(el.querySelectorAll('option'), function (o) {
298+
o.selected = true
299+
})
300+
trigger(el.firstChild, 'change')
301+
expect(vm.test[0]).toBe(1)
302+
expect(vm.test[1]).toBe(2)
303+
})
304+
289305
it('select + number initial value', function () {
290306
var vm = new Vue({
291307
el: el,

0 commit comments

Comments
 (0)