# HTML::FormBuilder
[![Build Status](https://travis-ci.org/binary-com/perl-HTML-FormBuilder.svg?branch=master)](https://travis-ci.org/binary-com/perl-HTML-FormBuilder)
[![Coverage Status](https://coveralls.io/repos/binary-com/perl-HTML-FormBuilder/badge.png?branch=master)](https://coveralls.io/r/binary-com/perl-HTML-FormBuilder?branch=master)

An object-oriented module for building and displaying HTML form.

```perl
my $form = HTML::FormBuilder->new(
   data => {
       name    => 'form_name',
       id      => 'form_id',
       class   => 'form_class',
       method  => 'post',
   },
   classes => { row => 'rowdev' });

my $fieldset = $form->add_fieldset({
   id      => 'fieldset1',
   legend  => 'fieldset1',
});

my $input1 = {
   label => {
       text    => 'input1',
       for     => 'input1',
   },
   input => {
       name    => 'name',
       type    => 'text',
       value   => 'Join'
   }};

$fieldset->add_field($input1);
$form->set_field_value('name', 'Omid');
print $form->build;


my $form2 = HTML::FormBuilder::Validation->new(
   data => {
       name    => 'form2_name',
       id      => 'form2_id',
       class   => 'form2_class',
       method  => 'post'
   },
   classes => {row => 'rowdev'});

my $fieldset2 = $form2->add_fieldset({
   id      => 'fieldset2',
   legend  => 'fieldset2',
});

my $select_fruit = {
   id      => 'fruit',
   name    => 'fruit',
   options => [
       {
           value => 'apple',
           text  => 'apple',
       },
       {
           value => 'orange',
           text  => 'orange'
       }
   ]};

my $input2 = {
   label => {
       text    => 'Select fruit',
       for     => 'fruit',
   },
   input => [$select_fruit],
   error => {
       text    => '',
       id      => 'errorfruit',
       class   => 'errorfield',
   },
   validation => [{
       type    => 'regexp',
       id      => 'fruit',
       regexp  => '^[a-zA-Z0-9- ]+$',
       err_msg => 'Please select fruit',
   }],
};

$fieldset2->add_field($input2);
$form->validate;
$form->build;

```

#### INSTALLATION



To install this module, run the following commands:

   perl Makefile.PL
   make
   make test
   make install

#### SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

   perldoc HTML::FormBuilder
   perldoc HTML::FormBuilder::Validation
   perldoc HTML::FormBuilder::FieldSet
   perldoc HTML::FormBuilder::Field
   perldoc HTML::FormBuilder::Select

You can also look for information at:

   RT, CPAN's request tracker (report bugs here)
       http://rt.cpan.org/NoAuth/Bugs.html?Dist=HTML-FormBuilder

   AnnoCPAN, Annotated CPAN documentation
       http://annocpan.org/dist/HTML-FormBuilder

   CPAN Ratings
       http://cpanratings.perl.org/d/HTML-FormBuilder

   Search CPAN
       http://search.cpan.org/dist/HTML-FormBuilder/


####COPYRIGHT

Copyright (C) 2015 binary.com