[whatwg] default select item that does not satisfy required attr.
Ric Hardacre
whatwg at cycloid.f9.co.uk
Fri Feb 24 01:25:20 PST 2006
from the web forms doc in the comment at the bottom:
* have a way of marking the first option of a <select> as the default
but have it not satisfy a new required="" attribute on <select> so
that you can have selects that require a valid value.
my proposed solution:
1. if select is flagged as "required" then the default option does not
satisfy the required status.
<select required>
<option default>PLEASE SELECT A STATE
<option value="--">Non-US
<option value="AL">Alaska
</select>
2. if no item is flagged as "selected" then it is selected, but it need
not be the top of the list:
<select name="timezone">
<option>GMT - 2
<option>GMT - 1
<option default>GMT
<option>GMT + 1
<option>GMT + 2
</select>
straight away I've broken my own solution, as "GMT" is a valid timezone,
so if the timezone select had a "required" flag then the UA would not
allow it. however in this instance there is no psudeo "select timezone"
option, so as long as one option is selected (and in a drop-down single
select box this is always the case) then it will always be valid.
however i've thought of another case, with a formatted list:
<select required>
<option default>PLEASE SELECT A MAIN COURSE
<option>--- PIES ---
<option>steak
<option>chicken
<option>veggie
<option>--- OTHER ---
<option>pizza
<option>fish and chips
</select>
here the first, second and 6th options are invalid so need to not
satisfy the required flag, one solution is to have optgroups:
<select required>
<option default>PLEASE SELECT A MAIN COURSE
<optgroup> --- PIES ---
<option>steak</option>
<option>chicken</option>
<option>veggie</option>
</optgroup>
<optgroup> --- OTHER ---
<option>pizza</option>
<option>fish and chips</option>
</optgroup>
</select>
which could be nested:
<select required>
<option default>PLEASE SELECT A MEAL
<optgroup> --- MAIN COURSE
<optgroup> --- PIES ---
<option>steak</option>
<option>chicken</option>
<option>veggie</option>
</optgroup>
<optgroup> --- OTHER ---
<option>pizza</option>
<option>fish and chips</option>
</optgroup>
</optgroup>
</select>
interestingly the optgroup may also be used to solve this problem:
* A fairly common situation for web authors is to have two lists, where
the contents of the second depends on the value of the first. Is here
any way we could extend the current model to include this functionality?
by having each optgroup in the second select married to the selected
value of the first, and indeed a third select could have (very many)
optgroups which switch depending on the value of the third by hooking
them in a way similar to the data list. Though exactly how would be a
seperate discussion
ric hardacre
http://www.cyclomedia.co.uk/
http://www.ricster.me.uk/
More information about the whatwg
mailing list