prefix => $optional_unique_prefix,
onchange => $javascript,
disabled => 0, #bool
- disable_empty => 1, #defaults to 1, disable the empty option
+ disable_empty => 1, #defaults to 1, set to 0 to disable the empty option
empty_label => 'all', #label for empty option
style => [ 'attribute:value', 'another:value' ],
);
function <% $pre %>state_changed(what, callback) {
+ what.form.<% $pre %>county.disabled = 'disabled';
+
state = what.options[what.selectedIndex].value;
country = what.form.<% $pre %>country.options[what.form.<% $pre %>country.selectedIndex].value;
// blank the current county list
for ( var i = what.form.<% $pre %>county.length; i >= 0; i-- )
what.form.<% $pre %>county.options[i] = null;
+
+% unless ( $opt{disable_empty} ) {
+ opt( what.form.<% $pre %>county, '', <% $opt{empty_label} |js_string %> );
+% }
// add the new counties
var countiesArray = eval('(' + counties + ')' );
if ( countiesArray.length > 1 ) {
what.form.<% $pre %>county.style.display = '';
- //countyFormLabel.style.visibility = 'visible';
- countyFormLabel.style.display = '';
+ if ( countyFormLabel ) {
+ //countyFormLabel.style.visibility = 'visible';
+ countyFormLabel.style.display = '';
+ }
} else {
what.form.<% $pre %>county.style.display = 'none';
- //countyFormLabel.style.visibility = 'hidden';
- countyFormLabel.style.display = 'none';
+ if ( countyFormLabel ) {
+ //countyFormLabel.style.visibility = 'hidden';
+ countyFormLabel.style.display = 'none';
+ }
}
+ what.form.<% $pre %>county.disabled = '';
+
//run the callback
if ( callback != null ) {
callback();
( $opt{'disable_cityupdate'} ? '' : $pre.'county_changed(this); ' ).
$opt{'onchange'};
-$opt{'style'} ||= [];
+my $county_style = $opt{'style'} ? [ @{ $opt{'style'} } ] : [];
my @counties = ();
if ( $countyflag ) {
@counties = map { length($_) ? $_ : $opt{'empty_data_value'} }
counties( $opt{'state'}, $opt{'country'} );
- push @{ $opt{'style'} }, 'display:none'
+ push @$county_style, 'display:none'
unless scalar(@counties) > 1;
}
my $style =
- scalar(@{$opt{style}})
- ? 'STYLE="'. join(';', @{$opt{style}}). '"'
+ scalar(@$county_style)
+ ? 'STYLE="'. join(';', @$county_style). '"'
: '';
</%init>