Commit f601dd4d authored by Oleg's avatar Oleg

Attrs: Restore ability to pass array to jQuery#val

Thanks @gibson042
parent 9fe051d5
...@@ -118,12 +118,13 @@ jQuery.extend({ ...@@ -118,12 +118,13 @@ jQuery.extend({
set: function( elem, value ) { set: function( elem, value ) {
var optionSet, option, var optionSet, option,
options = elem.options, options = elem.options,
values = jQuery.makeArray( value ),
i = options.length; i = options.length;
while ( i-- ) { while ( i-- ) {
option = options[ i ]; option = options[ i ];
if ( jQuery.valHooks.option.get( option ) === value ) { if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {
// Support: IE6 // Support: IE6
// When new option element is added to select box we need to // When new option element is added to select box we need to
......
...@@ -928,7 +928,7 @@ if ( "value" in document.createElement("meter") && ...@@ -928,7 +928,7 @@ if ( "value" in document.createElement("meter") &&
} }
var testVal = function( valueObj ) { var testVal = function( valueObj ) {
expect( 8 ); expect( 9 );
jQuery("#text1").val( valueObj("test") ); jQuery("#text1").val( valueObj("test") );
equal( document.getElementById("text1").value, "test", "Check for modified (via val(String)) value of input element" ); equal( document.getElementById("text1").value, "test", "Check for modified (via val(String)) value of input element" );
...@@ -943,7 +943,9 @@ var testVal = function( valueObj ) { ...@@ -943,7 +943,9 @@ var testVal = function( valueObj ) {
equal( document.getElementById("text1").value, "", "Check for modified (via val(null)) value of input element" ); equal( document.getElementById("text1").value, "", "Check for modified (via val(null)) value of input element" );
var j, var j,
$select1 = jQuery("#select1"); select = jQuery( "<select multiple><option value='1'/><option value='2'/></select>" );
$select1 = jQuery("#select1"),
$select1.val( valueObj("3") ); $select1.val( valueObj("3") );
equal( $select1.val(), "3", "Check for modified (via val(String)) value of select element" ); equal( $select1.val(), "3", "Check for modified (via val(String)) value of select element" );
...@@ -959,6 +961,9 @@ var testVal = function( valueObj ) { ...@@ -959,6 +961,9 @@ var testVal = function( valueObj ) {
j.val( valueObj( "asdf" ) ); j.val( valueObj( "asdf" ) );
equal( j.val(), "asdf", "Check node,textnode,comment with val()" ); equal( j.val(), "asdf", "Check node,textnode,comment with val()" );
j.removeAttr("value"); j.removeAttr("value");
select.val( valueObj( [ "1", "2" ] ) );
deepEqual( select.val(), [ "1", "2" ], "Should set array of values" );
}; };
test( "val(String/Number)", function() { test( "val(String/Number)", function() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment