mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-16 23:30:23 +00:00
fix(jqLite): return array from multi select in val()
This commit is contained in:
parent
864517e5a2
commit
01cd34957e
2 changed files with 29 additions and 0 deletions
|
|
@ -479,6 +479,15 @@ forEach({
|
|||
|
||||
val: function(element, 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;
|
||||
}
|
||||
element.value = value;
|
||||
|
|
|
|||
|
|
@ -661,6 +661,26 @@ describe('jqLite', function() {
|
|||
expect(input[0].value).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