X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Felements%2Fselect.html;h=100df94d08c76e6248eaa0fa6d9ac0e929950092;hp=7aa4180b6d651639c136a980992b2a3688f3ed28;hb=b71b1576c68bc40ad26592b354feace37a029f0e;hpb=6874a21f3cb26a167e49cc1324df30119c6ed75d diff --git a/httemplate/elements/select.html b/httemplate/elements/select.html index 7aa4180b6..100df94d0 100644 --- a/httemplate/elements/select.html +++ b/httemplate/elements/select.html @@ -1,10 +1,43 @@ +<%doc> +<& select.html, + # required + field => 'myfield', # NAME property + curr_value => 'foo', + labels => { # or 'option_labels' + # note: these will be escaped for you, don't escape them + 'AL' => 'Alabama', + 'AK' => 'Alaska', + 'AR' => 'Arkansas', + }, + options => [ 'AL', 'AK', 'AR' ], + curr_value => scalar( $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 + element_etc => '', # anything else to put in the + <% $size %> + <% $style %> + <% $opt{disabled} %> <% $onchange %> + <% $opt{'element_etc'} %> > % if ( $opt{options} ) { @@ -14,7 +47,7 @@ % } @@ -36,17 +69,12 @@ % % } - + <% $opt{'post_field_label'} %> % } <%init> my %opt = @_; -warn "SELECT.HTML: ". join ' / ', %opt; - -my $onchange = $opt{'onchange'} - ? 'onChange="'. $opt{'onchange'}. '(this)"' - : ''; my $labels = $opt{'option_labels'} || $opt{'labels'}; @@ -61,4 +89,21 @@ if ( $opt{'onchange'} ) { $onchange = 'onChange="'. $onchange. '"' unless $onchange =~ /^onChange=/i; } +$opt{'disabled'} = &{ $opt{'disabled'} }( \%opt ) + if ref($opt{'disabled'}) eq 'CODE'; +$opt{'disabled'} = 'DISABLED' + if $opt{'disabled'} && $opt{'disabled'} !~ /disabled/i; # uuh... yeah? + +my @style = ref($opt{'style'}) + ? @{ $opt{'style'} } + : $opt{'style'} + ? ( $opt{'style'} ) + : (); + +my $style = scalar(@style) ? 'STYLE="'. join(';', @style). '"' : ''; + +my $size = $opt{'size'} ? 'SIZE='.$opt{'size'} : ''; + +my $multiple = $opt{'multiple'} ? 'MULTIPLE' : ''; +