Chris van Uffelen wrote:
The validation of values seems to work perfectly well, however, I
wonder whether
it is possible to require a field-entry to be a number AND to fall
within a given
range, e.g. between 0 and 10. I know how to get a number, I don't
know how to
check for the range.
Hello Chris,
Below is the quick example I worked up. There is probably a more slick
way of putting the requirements into the validate statement, but I've
done it with additional JavaScript using the 'jsfunc' parameter.
Good luck, --bradoaks
use CGI::FormBuilder;
@fields = qw(age email mailing_list);
my $jsfunc = <<'EOJS'; # note single quote (see Hint)
if (form.elements['age'].value >= 10) {
alertstr += "Mr. T says, \"Age must be ten or under. Fool!\"\n";
invalid++;
}
EOJS
$form = CGI::FormBuilder->new(
method => 'POST',
fields => \@fields,
validate => {
email => 'EMAIL', # validate fields using
age => 'INT', # built-in patterns
},
required => 'ALL',
jsfunc => $jsfunc,
);
$form->field(name => 'mailing_list',
options => [qw/Subscribe Unsubscribe/]);
if ($form->submitted) {
# you would write code here to act on the form data
print $form->confirm(header => 1);
} else {
print $form->render(header => 1);
}
|