mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-05-13 01:13:08 +00:00
fix(jqLite): return array from multi select in val()
This commit is contained in:
parent
4be7612079
commit
306a613440
2 changed files with 29 additions and 0 deletions
|
|
@ -499,6 +499,15 @@ forEach({
|
||||||
|
|
||||||
val: function(element, value) {
|
val: function(element, value) {
|
||||||
if (isUndefined(value)) {
|
if (isUndefined(value)) {
|
||||||
|
if (nodeName_(element) === 'SELECT' && element.multiple) {
|
||||||
|
var result = [];
|
||||||
|
forEach(element.options, function (option) {
|
||||||
|
if (option.selected) {
|
||||||
|
result.push(option.value || option.text);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return result.length === 0 ? null : result;
|
||||||
|
}
|
||||||
return element.value;
|
return element.value;
|
||||||
}
|
}
|
||||||
element.value = value;
|
element.value = value;
|
||||||
|
|
|
||||||
|
|
@ -684,6 +684,26 @@ describe('jqLite', function() {
|
||||||
expect(input[0].value).toEqual('abc');
|
expect(input[0].value).toEqual('abc');
|
||||||
expect(input.val()).toEqual('abc');
|
expect(input.val()).toEqual('abc');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should get an array of selected elements from a multi select', function () {
|
||||||
|
expect(jqLite(
|
||||||
|
'<select multiple>' +
|
||||||
|
'<option selected>test 1</option>' +
|
||||||
|
'<option selected>test 2</option>' +
|
||||||
|
'</select>').val()).toEqual(['test 1', 'test 2']);
|
||||||
|
|
||||||
|
expect(jqLite(
|
||||||
|
'<select multiple>' +
|
||||||
|
'<option selected>test 1</option>' +
|
||||||
|
'<option>test 2</option>' +
|
||||||
|
'</select>').val()).toEqual(['test 1']);
|
||||||
|
|
||||||
|
expect(jqLite(
|
||||||
|
'<select multiple>' +
|
||||||
|
'<option>test 1</option>' +
|
||||||
|
'<option>test 2</option>' +
|
||||||
|
'</select>').val()).toEqual(null);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue