HTMLDocument.addSelectElement(3kaya)
NAME
HTMLDocument::addSelectElement - Adds a selection box
SYNOPSIS
ElementTree addSelectElement( ElementTree block, String name, Int ssize, [Pair<String, [SelectOption]> ] optgroups )
ARGUMENTS
parent The parent element
name The name of the input. Remember that names starting with "kaya_"
may be used by the Kaya standard library and should not be used
directly by applications.
ssize The size of the select element. If this is zero, the select element will only allow one option to be selected at any one time. If this
is one or more, the select element will allow multiple options to be
selected, and suggest to the browser that this many options be displayed simultaneously.
optgroups The options to select from
DESCRIPTION
- Adds a selection box to a form. The optgroups parameter is a list of
pairs. The first element of the pair is the 'heading' for the option
group, and the second element is a list of options in that group. For
most simple selectors, a single option group with no heading (the empty
string) is sufficient.
- options = [
- SelectOption("Express delivery","1",true),
SelectOption("Standard delivery","2",false),
SelectOption("Slow delivery","3",false) - ];
sel = addSelectElement(fieldset,"choice",0,[("",options)]);
/* // produces
<select> - <option value='1' selected='selected'>Express delivery</option>
<option value='2'>Standard delivery</option>
<option value='3'>Slow delivery</option> - </select>
*/
Using multiple groups of options is useful for larger select elements, where it can make the form clearer.- singles = ["A1","A2","B5"];
twins = ["A4","C2"];
doubles = ["A7","C1","C3"];
sopts = [];
topts = [];
dopts = [];
for s in singles { - push(sopts,SelectOption(s,s,false);
- }
for t in twins { - push(topts,SelectOption(s,s,false);
- }
for d in doubles { - push(dopts,SelectOption(s,s,false);
- }
options = [ - ("Single rooms",sopts),
("Twin rooms",topts),
("Double rooms",dopts) - ];
sel = addSelectElement(roombooker,"room",0,options);
Select elements allowing multiple options to be selected have very bad usability in most browsers - it is often better to use HTMLDocument.addOptionList (3kaya) to generate a set of checkboxes instead. Whichever method you use for multiple selection, remember that you need to use WebCommon.incomingData (3kaya) to correctly retrieve the selections from the user's form submission.
AUTHORS
Kaya standard library by Edwin Brady, Chris Morris and others
(kaya@kayalang.org). For further information see http://kayalang.org/
LICENSE
The Kaya standard library is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser General Public
License (version 2.1 or any later version) as published by the Free
Software Foundation.
RELATED
- HTMLDocument.SelectOption (3kaya) HTMLDocument.addFieldset (3kaya) HTMLDocument.addLabelledSelect (3kaya) HTMLDocument.addLazySelect (3kaya) HTMLDocument.addOptionList (3kaya) HTMLDocument.addTextarea (3kaya) HTMLDocument.addTextInput (3kaya)