package HTML::FormHandler::Field::Email; # ABSTRACT: validates email using Email::Valid use HTML::FormHandler::Moose; extends 'HTML::FormHandler::Field::Text'; use Email::Valid; our $VERSION = '0.02'; our $class_messages = { 'email_format' => 'Email should be of the format [_1]', }; has '+html5_type_attr' => ( default => 'email' ); sub get_class_messages { my $self = shift; return { %{ $self->next::method }, %$class_messages, } } apply( [ { transform => sub { lc( $_[0] ) } }, { check => sub { my ( $value, $field ) = @_; my $checked = Email::Valid->address( $value ); $field->value($checked) if $checked; }, message => sub { my ( $value, $field ) = @_; return [$field->get_message('email_format'), 'someuser@example.com']; }, } ] ); __PACKAGE__->meta->make_immutable; use namespace::autoclean; 1; __END__ =pod =head1 NAME HTML::FormHandler::Field::Email - validates email using Email::Valid =head1 VERSION version 0.40008 =head1 DESCRIPTION Validates that the input looks like an email address uisng L. Widget type is 'text'. If form has 'is_html5' flag active it will render instead of type="text" =head1 DEPENDENCIES L =head1 AUTHOR FormHandler Contributors - see HTML::FormHandler =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2012 by Gerda Shank. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut