Setting selectedIndex before adding option with that index

Hi,

Given the following HTML document:

<!doctype html>
<select></select>
<script>
var s = document.getElementsByTagName('select')[0];
s.selectedIndex = 0;
s.options[s.options.length] = new Option();
alert(s.selectedIndex);
</script>

At the moment the spec says we should alert -1. At the moment Opera 
alerts -1, and all other browsers alert 0. If you comment out the 
creation of the object, all give -1.

<http://www.ticketmaster.com/> relies upon it giving 0, so Opera's 
behaviour is going to have to change to match other browsers, leaving 
HTML 5 in a state where nothing matches the spec. It'd seem silly for 
the spec to stay in such a state.

I think the behaviour needed is that setting selectedIndex stores its 
value in a buffer if it doesn't already exist, and then acts as if it 
had just been set when the option is added. (Probably spec'd some 
totally different way, but that's the basic change.)

-- 
Geoffrey Sneddon — Opera Software
<http://gsnedders.com/>
<http://www.opera.com/>

Received on Thursday, 12 November 2009 16:40:02 UTC