sub checkbox_tag {
my ($name, %attributes) = @_;
+ my %label_attributes = map { (substr($_, 6) => $attributes{$_}) } grep { m{^label_} } keys %attributes;
+ delete @attributes{grep { m{^label_} } keys %attributes};
+
_set_id_attribute(\%attributes, $name);
$attributes{value} = 1 unless defined $attributes{value};
my $code = '';
$code .= hidden_tag($name, 0, %attributes, id => $attributes{id} . '_hidden') if $for_submit;
$code .= html_tag('input', undef, %attributes, name => $name, type => 'checkbox');
- $code .= html_tag('label', $label, for => $attributes{id}) if $label;
+ $code .= html_tag('label', $label, for => $attributes{id}, %label_attributes) if $label;
$code .= javascript(qq|\$('#$attributes{id}').checkall('$checkall');|) if $checkall;
return $code;
sub radio_button_tag {
my ($name, %attributes) = @_;
+ my %label_attributes = map { (substr($_, 6) => $attributes{$_}) } grep { m{^label_} } keys %attributes;
+ delete @attributes{grep { m{^label_} } keys %attributes};
+
$attributes{value} = 1 unless exists $attributes{value};
_set_id_attribute(\%attributes, $name, 1);
}
my $code = html_tag('input', undef, %attributes, name => $name, type => 'radio');
- $code .= html_tag('label', $label, for => $attributes{id}) if $label;
+ $code .= html_tag('label', $label, for => $attributes{id}, %label_attributes) if $label;
return $code;
}
If C<%attributes> contains a key C<label> then a HTML 'label' tag is
created with said C<label>. No attribute named C<label> is created in
-that case.
+that case. Furthermore, all attributes whose names start with
+C<label_> become attributes on the label tag without the C<label_>
+prefix. For example, C<label_style='#ff0000'> will be turned into
+C<style='#ff0000'> on the label tag, causing the text to become red.
If C<%attributes> contains a key C<checkall> then the value is taken as a
JQuery selector and clicking this checkbox will also toggle all checkboxes
If C<%attributes> contains a key C<label> then a HTML 'label' tag is
created with said C<label>. No attribute named C<label> is created in
-that case.
+that case. Furthermore, all attributes whose names start with
+C<label_> become attributes on the label tag without the C<label_>
+prefix. For example, C<label_style='#ff0000'> will be turned into
+C<style='#ff0000'> on the label tag, causing the text to become red.
=item C<select_tag $name, \@collection, %attributes>