Skip to content

Commit

Permalink
Fix setting value attributes on option elements. Fixes #9071.
Browse files Browse the repository at this point in the history
  • Loading branch information
timmywil committed May 3, 2011
1 parent 6d2fd57 commit 4ac2fdd
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/attributes.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ jQuery.fn.extend({
hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];

// If set returns undefined, fall back to normal setting
if ( !hooks || ("set" in hooks && hooks.set( this, val, "value" ) === undefined) ) {
if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
this.value = val;
}
});
Expand Down
4 changes: 3 additions & 1 deletion test/unit/attributes.js
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ test("removeProp(String)", function() {
});

test("val()", function() {
expect(25);
expect(26);

document.getElementById("text1").value = "bla";
equals( jQuery("#text1").val(), "bla", "Check for modified value of input element" );
Expand Down Expand Up @@ -513,6 +513,8 @@ test("val()", function() {
var $button = jQuery("<button value='foobar'>text</button>").insertAfter("#button");
equals( $button.val(), "foobar", "Value retrieval on a button does not return innerHTML" );
equals( $button.val("baz").html(), "text", "Setting the value does not change innerHTML" );

equals( jQuery("<option/>").val("test").attr("value"), "test", "Setting value sets the value attribute" );
});

var testVal = function(valueObj) {
Expand Down

0 comments on commit 4ac2fdd

Please sign in to comment.