element_attr problem

17 views
Skip to first unread message

zfmbek

unread,
Feb 25, 2013, 8:56:36 AM2/25/13
to formh...@googlegroups.com
Hi

I try to add some arbitrary html attributes to the field with element_attr. But I can not get any effect.

        my $form = HTML::FormHandler->new(
            name => 'user_form',
            field_list => [
                'username' => {
                    type  => 'Text',
                    element_attr     => { placeholder => 'your username', },
                    apply => [ { check => qr/^[0-9a-z]*\z/,
                       message => 'Contains invalid characters' } ],
                },
                'select_bar' => {
                    type     => 'Select',
                    multiple => 1,
                    size     => 4,
                },
            ],
        );

Result after rendering

<form id="user_form" method="post" >
<fieldset class="main_fieldset">
<div><label class="label" for="username">Username: </label><input type="text" name="username" id="username" value="" /></div>

<div><label class="label" for="select_bar">Select bar: </label><select name="select_bar" id="select_bar" multiple="multiple" size="4"></select></div>
</fieldset></form>

Gerda Shank

unread,
Feb 26, 2013, 3:51:56 PM2/26/13
to formh...@googlegroups.com
This is working fine for me. Which version of FormHandler are you using? What rendering method?

Gerda

Working test case:
================================================
use strict;
use warnings;
use Test::More;
use HTML::FormHandler::Test;

use HTML::FormHandler;

my $form = HTML::FormHandler->new(
    name => 'user_form',
    field_list => [
        'username' => {
            type  => 'Text',
            element_attr     => { placeholder => 'your username', },
            apply => [ { check => qr/^[0-9a-z]*\z/,
               message => 'Contains invalid characters' } ],
        },
        'select_bar' => {
            type     => 'Select',
            multiple => 1,
            size     => 4,
        },
    ],
);

ok( $form, 'form built' );

my $expected = '
<form id="user_form" method="post">
  <div class="form_messages"></div>
  <div>
    <label for="username">Username</label>
    <input id="username" name="username" placeholder="your username" type="text" value="" />
  </div>
  <div>
    <label for="select_bar">Select bar</label>
    <select id="select_bar" multiple="multiple" name="select_bar" size="4"></select>
  </div>
</form>';
my $rendered = $form->render;
is_html( $rendered, $expected, 'rendered ok' );

done_testing;

=======================================



--
You received this message because you are subscribed to the Google Groups "formhandler" group.
To unsubscribe from this group and stop receiving emails from it, send an email to formhandler...@googlegroups.com.
To post to this group, send email to formh...@googlegroups.com.
Visit this group at http://groups.google.com/group/formhandler?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Reply all
Reply to author
Forward
0 new messages