Ian Hickson wrote:
2. select tag:
   selectedindex="[num]"

implicitly set the selected index, instead of having to parse all the option
tags and insert a "selected" string, much easier to bind to server side data,
an invalid value (such as -1 or greater than the number of option tags) would
mean none are selected. this would obviously not apply to multiple-selects

You can do this from script at the moment (setting the .selectedIndex attribute). I haven't added it to the markup side yet. It doesn't seem to add much other than convenience (you can already do this with selected="", as you noted). Adding features has a high cost, even for simple features like this, and I'm not sure we can really justify the cost here.

I actually think that something like this could be of high value to authors.

I've found myself many many times writing serverside code like this:

selected_value = get_default_selected();
list_of_records = get_records_from_db();
print("<select name='hi'>");
foreach (record in list_of_records) {
  print("<option ");
  if (record.value == selected_value) {
    print("selected ");
  }
  print("value='" + record.value + "'>" + record.text +
        "</option>");
}


while this works it is quite a pain. It would be much better if you could stick selected value in one place and then just dump all values. Such as:

list_of_records = get_records_from_db();
print("<select name='hi' value='" + get_default_selected() + "'>");
foreach (record in list_of_records) {
  print("<option value='" + record.value + "'>" + record.text +
        "</option>");
}

So I think it works quite well as a convenience feature.

We would have to define things like does the value content attribute change value when a new option is selected, or does it just act as a default value. In firefox different controls behave differently in this regard, I haven't yet checked what the html5 spec does.

/ Jonas

Reply via email to