- From: Geoffrey Sneddon <gsneddon@opera.com>
- Date: Tue, 15 Dec 2009 16:54:16 +0100
- To: HTML WG <public-html@w3.org>
Geoffrey Sneddon wrote:
> 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.)
It appears I didn't look at this close enough. As far as I can tell, the
spec is currently correct for selectedIndex. What is wrong is that
adding an option to a select element should set its selectedness to true
if there are no options that are already selected.
--
Geoffrey Sneddon — Opera Software
<http://gsnedders.com/>
<http://www.opera.com/>
Received on Tuesday, 15 December 2009 15:55:00 UTC