App-Widget
view release on metacpan or search on metacpan
lib/App/Widget/ValidatedTextField.pm view on Meta::CPAN
######################################################################
## $Id: ValidatedTextField.pm 3668 2006-03-11 20:51:13Z spadkins $
######################################################################
package App::Widget::ValidatedTextField;
$VERSION = (q$Revision: 3668 $ =~ /(\d[\d\.]*)/)[0]; # VERSION numbers generated by svn
use App;
use App::Widget::TextField;
@ISA = ( "App::Widget::TextField" );
use strict;
=head1 NAME
App::Widget::ValidatedTextField - An HTML text field
=head1 SYNOPSIS
$name = "first_name";
# official way
use App;
$context = App->context();
$w = $context->widget($name);
# OR ...
$w = $context->widget($name,
class => "App::Widget::ValidatedTextField",
size => 8, # from HTML spec
maxlength => 18, # from HTML spec
tabindex => 1, # from HTML spec
style => "mystyle", # from HTML to support CSS
color => "#6666CC", # from CSS spec
font_size => "10px", # from CSS spec
border_style => "solid", # from CSS spec
border_width => "1px", # from CSS spec
border_color => "#6666CC", # from CSS spec
padding => "2px", # from CSS spec
background_color => "#ccffcc", # from CSS spec
font_family => "Verdana, Geneva, Arial", # from CSS spec
override => 1, # increase precedence of following options to "override" from "default"
validate => "date", # not impl. yet ("date", "time", "datetime", "enum", "number", "integer", ":regexp")
#autocomplete => \@previous_choices, # not impl. yet
);
# internal way
use App::Widget::ValidatedTextField;
$w = App::Widget::ValidatedTextField->new($name);
=cut
######################################################################
# CONSTANTS
######################################################################
######################################################################
# ATTRIBUTES
######################################################################
# INPUTS FROM THE ENVIRONMENT
=head1 DESCRIPTION
This class is a <input type=text> HTML element.
=cut
######################################################################
# METHODS
######################################################################
sub set_value {
my ($self, $value) = @_;
my ($validate);
$validate = $self->get("validate");
$value = $self->format($validate,$value) if ($validate);
$self->{context}->wset_value($self->{name}, $value);
}
sub get_value {
my ($self) = @_;
my ($validate, $value, $newvalue);
$validate = $self->get("validate");
$value = $self->{context}->wget($self->{name}, "");
$value = "" if (!defined $value);
if ($validate) {
$newvalue = $self->format($validate,$value);
if ($newvalue ne $value) {
$self->{context}->wset_value($self->{name}, $value);
$value = $newvalue;
}
}
return $value;
}
# OBSOLETE: use set_value(), get_value()
#sub value {
( run in 0.524 second using v1.01-cache-2.11-cpan-f56aa216473 )