| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
HTML::FormFu::Constraint::CallbackOnce - Code Callback Constraint
$form->constraint({
type => 'CallbackOnce',
name => 'foo',
callback => \&sfoo,
);
sub foo {
my ( $value, $params ) = @_;
# return true or false
}
Unlinke the HTML::FormFu::Constraint::Callback, this callback is only called once, regardless of how many values are submitted.
The first argument passed to the callback is the submitted value for the associated field; this may be a single value or an arrayref of value. The second argument passed to the callback is a hashref of name/value pairs for all input fields.
This constraint doesn't honour the not() value.
Arguments: \&sub_ref
Is a sub-class of, and inherits methods from HTML::FormFu::Constraint
Carl Franks cfranks@cpan.org
This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.
| HTML-FormFu documentation | Contained in the HTML-FormFu distribution. |
package HTML::FormFu::Constraint::CallbackOnce; use Moose; extends 'HTML::FormFu::Constraint'; has callback => ( is => 'rw', traits => ['Chained'] ); sub process { my ( $self, $params ) = @_; # check when condition return if !$self->_process_when($params); my $value = $self->get_nested_hash_value( $params, $self->nested_name ); my $callback = $self->callback || sub {1}; no strict 'refs'; my $ok = eval { $callback->( $value, $params ) }; return $self->mk_errors( { pass => ( $@ or !$ok ) ? 0 : 1, message => $@, } ); } __PACKAGE__->meta->make_immutable; 1; __END__