Attrs: Restore ability to pass array to jQuery#val

Thanks @gibson042
This commit is contained in:
Oleg 2014-01-16 06:55:56 +04:00
parent 9fe051d57e
commit f601dd4d23
2 changed files with 9 additions and 3 deletions

View File

@ -118,12 +118,13 @@ jQuery.extend({
set: function( elem, value ) {
var optionSet, option,
options = elem.options,
values = jQuery.makeArray( value ),
i = options.length;
while ( i-- ) {
option = options[ i ];
if ( jQuery.valHooks.option.get( option ) === value ) {
if ( jQuery.inArray( jQuery.valHooks.option.get( option ), values ) >= 0 ) {
// Support: IE6
// When new option element is added to select box we need to

View File

@ -928,7 +928,7 @@ if ( "value" in document.createElement("meter") &&
}
var testVal = function( valueObj ) {
expect( 8 );
expect( 9 );
jQuery("#text1").val( valueObj("test") );
equal( document.getElementById("text1").value, "test", "Check for modified (via val(String)) value of input element" );
@ -943,7 +943,9 @@ var testVal = function( valueObj ) {
equal( document.getElementById("text1").value, "", "Check for modified (via val(null)) value of input element" );
var j,
$select1 = jQuery("#select1");
select = jQuery( "<select multiple><option value='1'/><option value='2'/></select>" );
$select1 = jQuery("#select1"),
$select1.val( valueObj("3") );
equal( $select1.val(), "3", "Check for modified (via val(String)) value of select element" );
@ -959,6 +961,9 @@ var testVal = function( valueObj ) {
j.val( valueObj( "asdf" ) );
equal( j.val(), "asdf", "Check node,textnode,comment with val()" );
j.removeAttr("value");
select.val( valueObj( [ "1", "2" ] ) );
deepEqual( select.val(), [ "1", "2" ], "Should set array of values" );
};
test( "val(String/Number)", function() {