Skip to main content

Bug Tracker

Side navigation

#1916 closed bug (fixed)

Opened November 12, 2007 10:17PM UTC

Closed November 29, 2007 05:40PM UTC

Last modified March 15, 2012 06:37PM UTC

Last option in SELECT is selected when options set using .html(strHtml) in Firefox/Mozilla

Reported by: doug Owned by:
Priority: major Milestone: 1.2.2
Component: core Version: 1.2.1
Keywords: Cc:
Blocked by: Blocking:
Description

Using .html() to set the options in a SELECT element selects the last option in the last regardless of which options have the 'selected' attribute. The problem occurs in Firefox 2, not IE 7.

Example,

<select id="sel"></select>

$('#sel').html('<option>a</option><option selected>b</option><option>c</option>');

displays with 'c' shown as selected when it should be 'b'.

SOLUTION:

domManip: function(args, table, dir, fn) {

:

return this.each(function(){

:

jQuery.each( a, function(){

var elem = clone ...

if ( !evalScr...

fn.call( obj...

});

/* SOLUTION BEGIN */

if (jQuery.nodeName(this, "select"))

{

jQuery.each( this.options, function(){

this.selected = this.defaultSelected; // Needed for Firefox, which always selects last option

});

}

/* SOLUTION END */

});

}

Attachments (1)
  • jquery_test.html (0.7 KB) - added by davidserduke November 29, 2007 05:39PM UTC.

    test case (based on description)

Change History (2)

Changed November 29, 2007 05:40PM UTC by davidserduke comment:1

resolution: → fixed
status: newclosed

This appears to be fixed. I suspect it was the fix [3844] that did it.

Since I didn't do it on purpose and test before and after, if someone sees a problem that I'm overlooking please reopen the bug.

Changed January 15, 2008 08:52PM UTC by doug comment:2

Retested with jQuery 1.2.2 and it appears to be working. Thanks!