+<%doc>
+<& select.html,
+ # required
+ field => 'myfield', # NAME property
+ curr_value => 'foo',
+ labels => { # or 'option_labels'
+ 'AL' => 'Alabama',
+ 'AK' => 'Alaska',
+ 'AR' => 'Arkansas',
+ },
+ options => [ 'AL', 'AK', 'AR' ],
+ curr_value => $cgi->param('myfield'),
+
+ # recommended
+ id => 'myid', # DOM id
+
+ # optional
+ size => 1, # to show multiple rows at once
+ style => '', # STYLE property
+ multiple => 0,
+ disabled => 0,
+ onchange => 'do_something()',
+ js_only => 0, # disables the whole thing
+&>
+</%doc>
+
% unless ( $opt{'js_only'} ) {
<SELECT NAME = "<% $opt{field} %>"
ID = "<% $opt{id} %>"
previousValue = "<% $curr_value %>"
previousText = "<% $labels->{$curr_value} || $curr_value %>"
+ <% $multiple %>
+ <% $size %>
<% $style %>
<% $opt{disabled} %>
<% $onchange %>
my %opt = @_;
-my $onchange = $opt{'onchange'}
- ? 'onChange="'. $opt{'onchange'}. '(this)"'
- : '';
-
my $labels = $opt{'option_labels'} || $opt{'labels'};
my $curr_value = $opt{'curr_value'};
my $style = scalar(@style) ? 'STYLE="'. join(';', @style). '"' : '';
+my $size = $opt{'size'} ? 'SIZE='.$opt{'size'} : '';
+
+my $multiple = $opt{'multiple'} ? 'MULTIPLE' : '';
</%init>