Jifty::Web::Form::Field::Checkbox - Add checkboxes to your forms


Jifty documentation Contained in the Jifty distribution.

Index


Code Index:

NAME

Top

Jifty::Web::Form::Field::Checkbox - Add checkboxes to your forms

METHODS

Top

accessors

Provide checked and value accessors, in addition to Jifty::Web::Form::Field's default accessors. value defaults to "1".

render_widget

Renders the checkbox widget.

render_value

Renders value as a checkbox widget.

javascript_preempt

By default, javascript (such as onclick handlers) should not actually prevent browsers from placing the checkmark in the checkbox.


Jifty documentation Contained in the Jifty distribution.
use warnings;
use strict;
 
package Jifty::Web::Form::Field::Checkbox;

use base qw/Jifty::Web::Form::Field/;
__PACKAGE__->mk_accessors(qw/checked value/);

sub accessors { shift->SUPER::accessors(), 'checked' , 'value' }

sub render_widget {
    my $self  = shift;
    my $field =  qq!<input type="hidden" name="@{[ $self->fallback_name ]}" value="0" />\n!;

    $field .= qq!<input!;
    $field .= qq! type="checkbox"!;
    $field .= qq! title="@{[ $self->title ]}"! if ($self->title);
    $field .= qq! name="@{[ $self->input_name ]}"!;
    $field .= qq! id="@{[ $self->element_id ]}"!;
    $field .= qq! value="@{[$self->value ||1]}"!;
    $field .= $self->_widget_class;
    $field .= qq! checked="checked"! if ($self->checked or $self->current_value);

    $field .= $self->javascript;
    
    $field .= qq! />\n!;
    Jifty->web->out($field);
    '';
}

sub render_value {
    my $self  = shift;
    my $field .= qq!<input type="checkbox"!;
    $field .= qq! name="@{[ $self->input_name ]}"!;
    $field .= qq! title="@{[ $self->title ]}"! if ($self->title);
    $field .= qq! id="@{[ $self->element_id ]}"!;
    $field .= qq! value="@{[$self->value ||1]}"!;
    $field .= $self->_widget_class;
    $field .= qq! checked="checked"! if ($self->checked or $self->current_value);
    $field .= qq! disabled="disabled" readonly="readonly"!;
    $field .= qq! />\n!;

    Jifty->web->out($field);
    return '';
}

sub javascript_preempt { return 0; }

1;