}
}
exists $rows->[$_]->{value} or $rows->[$_]->{value} = $_ + 1 for 0 .. $#$rows;
+ $rows->[0]->{id} = $attr->{id} || $rows->[0]->{name} || $attr->{name} || $name #XXX: //
+ if ref $label ne 'ARRAY' and defined $rows->[0] and not defined $rows->[0]->{id};
$self->select($name, $rows, {%$attr, type => 'checkbox'});
}
);
say $input->stop; # </form>
+=head1 DESCRIPTION
+
+=over
+
+=item C<hidden>
+
+ $input->hidden(name => 'value');
+
+=item C<text>
+
+ $input->text(name => 'default');
+
+=item C<select>
+
+ $input->select(name => ['option'], 'default');
+
+=item C<radio>
+
+ $input->radio(name => ['option'], ['option label'], 'default');
+
+eq
+
+ $input->radio(
+ 'name',
+ [ {label => 'option label', value => 'option'} ],
+ {value => 'default'}
+ );
+
+=item C<check>
+
+ $input->check(name => ['label', 'second option'], [0, 1]);
+
+eq
+
+ $input->check(name => [
+ {label => 'label', value => 1, checked => 0},
+ {label => 'second option', value => 2, checked => 1},
+ ]);
+
+=back
+
=head1 TODO
=over
Allow custom value quotation function.
Makes L<XML::Quote|XML::Quote> dependency optional.
+=item single checkbox id
+
+Do not add value to single check() by default.
+
=back
=head1 AUTHOR