Merge branch 'bug7123' of http://github.com/csnover/jquery into csnover-bug7123
authorJohn Resig <jeresig@gmail.com>
Sat, 9 Oct 2010 20:27:59 +0000 (16:27 -0400)
committerJohn Resig <jeresig@gmail.com>
Sat, 9 Oct 2010 20:27:59 +0000 (16:27 -0400)
src/attributes.js
test/unit/attributes.js

index ec4841b..147c353 100644 (file)
@@ -215,6 +215,10 @@ jQuery.fn.extend({
                                val = "";
                        } else if ( typeof val === "number" ) {
                                val += "";
+                       } else if ( jQuery.isArray(val) ) {
+                               val = jQuery.map(val, function (value) {
+                                       return value == null ? "" : value + "";
+                               });
                        }
 
                        if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
index a483195..c6007aa 100644 (file)
@@ -409,7 +409,19 @@ test("val(String/Number)", function() {
 
 test("val(Function)", function() {
        testVal(functionReturningObj);
-})
+});
+
+test( "val(Array of Numbers) (Bug #7123)", function() {
+       expect(4);
+       jQuery('#form').append('<input type="checkbox" name="arrayTest" value="1" /><input type="checkbox" name="arrayTest" value="2" /><input type="checkbox" name="arrayTest" value="3" checked="checked" /><input type="checkbox" name="arrayTest" value="4" />');
+       var elements = jQuery('input[name=arrayTest]').val([ 1, 2 ]);
+       ok( elements[0].checked, "First element was checked" );
+       ok( elements[1].checked, "Second element was checked" );
+       ok( !elements[2].checked, "Third element was unchecked" );
+       ok( !elements[3].checked, "Fourth element remained unchecked" );
+       
+       elements.remove();
+});
 
 test("val(Function) with incoming value", function() {
        expect(10);