X-Git-Url: http://git.shiar.net/perl/html-form-simple.git/blobdiff_plain/48891d33a852d6db31113e4e7c10e1cda5771ce3..61dd576040bbb86eb8925c1c80a830bfa998eb41:/lib/HTML/Form/Simple.pm
diff --git a/lib/HTML/Form/Simple.pm b/lib/HTML/Form/Simple.pm
index 911b864..2b30d79 100644
--- a/lib/HTML/Form/Simple.pm
+++ b/lib/HTML/Form/Simple.pm
@@ -9,7 +9,8 @@ our $VERSION = '1.00';
sub new {
- bless {}, $_[0];
+ my ($class, $default) = @_;
+ bless {default => $default}, $class;
}
sub _attr {
@@ -83,6 +84,8 @@ sub hidden {
$attr->{name } = $name if defined $name;
$attr->{value} = $value if defined $value;
+ $attr->{value} = $self->{default}->{$name}
+ if not defined $attr->{value} and defined $name and defined $self->{default};
$attr->{type} = 'hidden' unless defined $attr->{type};
return $self->tag(input => $attr);
@@ -94,6 +97,8 @@ sub text {
$attr->{name } = $name if defined $name;
$attr->{value} = $value if defined $value;
+ $attr->{value} = $self->{default}->{$name}
+ if not defined $attr->{value} and defined $name and defined $self->{default};
$attr->{id} = $attr->{name} unless defined $attr->{id};
$attr->{type} = 'text' unless defined $attr->{type} or defined $attr->{rows};
$value = delete $attr->{value} if defined $attr->{rows};
@@ -109,13 +114,15 @@ sub select {
my $self = shift;
my ($name, $rows, $default, $attr) = $self->_attr(3, @_);
- $default = $attr->{value} unless defined $default;
- delete $attr->{value}; # never a parent attribute
-
$attr->{name} = $name;
$attr->{id} = $attr->{name} unless defined $attr->{id};
$attr->{type} = 'select' unless defined $attr->{type};
+ $default = $attr->{value} unless defined $default;
+ delete $attr->{value}; # never a parent attribute
+ $default = $self->{default}->{$name}
+ if not defined $default and defined $name and defined $self->{default};
+
my @options = map { ref $_ ? $_ : {value => $_} } @$rows;
my @return;