Rose-HTML-Objects

 view release on metacpan or  search on metacpan

t/form-repeatable.t  view on Meta::CPAN

  'children.3.gender' => 'F',
});

$form->init_fields;

@forms = $form->form('children')->forms;

is(scalar @forms, 3, 'sparse repeated form 4');

ok($form->form('children')->form(2)->is_empty, 'sparse repeated form 5');

BEGIN
{
  package MyPerson;

  our @ISA = qw(Rose::Object);
  use Rose::Object::MakeMethods::Generic
  (
    scalar => [ qw(name age bday gender start) ],
  );

  package MyAddress;

  our @ISA = qw(Rose::Object);
  use Rose::Object::MakeMethods::Generic
  (
    scalar => [ qw(street city state zip) ],
  );

  package MyPersonForm;

  our @ISA = qw(Rose::HTML::Form);

  sub build_form 
  {
    my($self) = shift;

    $self->add_fields
    (
      name =>
      {
        type => 'text',
        size => 25,
      },

      age =>
      {
        type     => 'integer',
        positive => 1,
      },

      gender =>
      {
        type     => 'radio group',
        choices  => { 'm' => 'Male', 'f' => 'Female' },
        default  => 'm',
      },

      bday =>
      {
        type => 'datetime split mdy', 
      },

      start =>
      {
        type => 'datetime split mdyhms',
      },
    );
  }

  sub person_from_form { shift->object_from_form('MyPerson') }

  package MyAddressForm;

  our @ISA = qw(Rose::HTML::Form);

  sub build_form 
  {
    my($self) = shift;

    $self->add_fields
    (
      street =>
      {
        type => 'text',
        size => 25,
      },

      city => 
      {
        type => 'text',
        size => 25,
      },

      state => 
      {
        type => 'text',
        size => 2,
      },

      zip => 
      {
        type => 'text',
        size => 10,
      },
    );
  }

  sub validate
  {
    my($self) = shift;

    $self->SUPER::validate or return 0;
    $self->field('street')->error('Blah');
    no warnings 'uninitialized';
    return ($self->field('zip')->internal_value == 666) ? 0 : 1;
  }

  sub address_from_form { shift->object_from_form('MyAddress') }

  package MyPersonAddressesForm;

  our @ISA = qw(Rose::HTML::Form);

  sub build_form
  {



( run in 0.675 second using v1.01-cache-2.11-cpan-71847e10f99 )