————# -----------------------------------------------------------------------------
=encoding utf8
=head1 NAME
Quiq::Html::Widget::TextField - Einzeiliges Textfeld
=head1 BASE CLASS
L<Quiq::Html::Widget>
=head1 ATTRIBUTES
=over 4
=item id => $id (Default: undef)
Id des Textfelds.
=item class => $class (Default: undef)
CSS Klasse des Textfelds.
=item style => $style (Default: undef)
CSS Definition (inline).
=item disabled => $bool (Default: 0)
Widget kann nicht editiert werden.
=item hidden => $bool (Default: 0)
Widget ist (aktuell) unsichtbar.
=item maxLength => $n (Default: Wert von "size")
Maximale Länge des Eingabewerts in Zeichen. Ein Wert von "0" beutet
keine Eingabebegrenzung.
=item name => $name (Default: undef)
Name des Textfelds.
=item onKeyUp => $js (Default: undef)
JavaScript-Handler.
=item password => $bool (Default: 0)
Wenn gesetzt, wird der Eingawert verschleiert.
=item readonly => $bool (Default: 0)
Zeige das Feld und seinen Wert unveränderbar an.
=item size => $n (Default: undef)
Breite des Feldes in Zeichen.
=item title => $text (Default: undef)
Text Tooltip.
=item undefIf => $bool (Default: 0)
Wenn wahr, liefere C<undef> als Widget-Code.
=item value => $str (Default: undef)
Anfänglicher Wert des Textfelds.
=back
=cut
# -----------------------------------------------------------------------------
package
Quiq::Html::Widget::TextField;
use
v5.10;
use
strict;
use
warnings;
our
$VERSION
=
'1.225'
;
# -----------------------------------------------------------------------------
=head1 METHODS
=head2 Konstruktor
=head3 new() - Konstruktor
=head4 Synopsis
$e = $class->new(@keyVal);
=cut
# -----------------------------------------------------------------------------
sub
new {
my
$class
=
shift
;
# @_: @keyVal
# Defaultwerte
my
$self
=
$class
->SUPER::new(
class
=>
undef
,
disabled
=> 0,
hidden
=> 0,
id
=>
undef
,
maxLength
=>
undef
,
name
=>
undef
,
onKeyUp
=>
undef
,
password
=> 0,
readonly
=> 0,
size
=>
undef
,
style
=>
undef
,
title
=>
undef
,
undefIf
=> 0,
value
=>
undef
,
);
# Werte Konstruktoraufruf
$self
->set(
@_
);
return
$self
;
}
# -----------------------------------------------------------------------------
=head2 Objektmethoden
=head3 html() - Generiere HTML-Code
=head4 Synopsis
$html = $e->html($h);
$html = $class->html($h,@keyVal);
=cut
# -----------------------------------------------------------------------------
sub
html {
my
$this
=
shift
;
my
$h
=
shift
;
# @_: @keyVal
my
$self
=
ref
$this
?
$this
:
$this
->new(
@_
);
# Attribute
my
(
$class
,
$disabled
,
$id
,
$maxLength
,
$name
,
$onKeyUp
,
$password
,
$readonly
,
$size
,
$style
,
$title
,
$undefIf
,
$value
) =
$self
->get(
qw/class disabled id maxLength name onKeyUp password
readonly size style title undefIf value/
);
if
(!
defined
$maxLength
) {
$maxLength
=
$size
;
}
elsif
(
$maxLength
== 0) {
$maxLength
=
undef
;
}
# Whitespace entfernen
if
(
defined
$value
) {
$value
=~ s/^\s+//;
$value
=~ s/\s+$//;
}
# Generierung
if
(
$undefIf
) {
return
undef
;
}
return
$h
->tag(
'input'
,
type
=>
$password
?
'password'
:
'text'
,
id
=>
$id
,
class
=>
$class
,
style
=>
$style
,
name
=>
$name
,
readonly
=>
$readonly
,
disabled
=>
$disabled
,
onkeyup
=>
$onKeyUp
,
size
=>
$size
,
maxlength
=>
$maxLength
,
value
=>
$value
,
title
=>
$title
,
);
}
# -----------------------------------------------------------------------------
=head1 VERSION
1.225
=head1 AUTHOR
Frank Seitz, L<http://fseitz.de/>
=head1 COPYRIGHT
Copyright (C) 2025 Frank Seitz
=head1 LICENSE
This code is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
=cut
# -----------------------------------------------------------------------------
1;
# eof