[Html-widget] retain_default() for a HTML::Widget::Element::Button?
Bernhard Graf
html-widget at augensalat.de
Thu May 10 21:48:00 GMT 2007
HTML::Widget::Element::Button has a retain_default() accessor.
<cite>
If true, overrides the default behaviour, so that after a field is
missing from the form submission, the xml output will contain the
default value, rather than be empty.
</cite>
But why?
A button value (the label) cannot or at least should not be changed by
the user (see bottom of page) - or do I overlook something?
I ask because I struggled some time with HTML::Widget to find out why a
submit button of a form didn't get a value. Finally I found the reason
is because for the corresponding form I always call process with the
HTTP request object as argument -
$widget->process($c->request)
- even at the initial call (*).
I set retain_default(1) on this submit element now and it works, but
actually as I said I think retain_default() is unappropriate for a
button element and in HTML::Widget::Element::Button::containerize() the
line
and $self->retain_default || not $args->{submitted};
should be removed.
(*) To set and check initial form values. Thus currently (and without
retain_default(1)) I'm also able to set the value of the submit button
(the name is also "submit") by calling the page like this:
http://my.domain/path/to/page?submit=My+Personal+Search-Button
Does anybody need or want this behaviour?
--
Bernhard Graf
More information about the Html-widget
mailing list