Select component should allow blank option and obey the required validator
--------------------------------------------------------------------------
Key: TAPESTRY-2295
URL: https://issues.apache.org/jira/browse/TAPESTRY-2295
Project: Tapestry
Issue Type: Improvement
Components: Core Components
Affects Versions: 5.0.12
Environment: osx 10.4, java 1.5
Reporter: Julian Wood
Priority: Minor
The situation is this:
I have a select box in a form, and I want to make it required.
This is simple enough, but the blank option disappears when the required
validation is applied. This is by design - the required validation is
implemented so that a choice is always made. As a corollary, the first option
is always selected by default upon entry into the form.
The problem with this is that users have a tendency to skip these fields which
are prepopulated, something which when having a blank option (and required
validation) does not happen. The blank option should not necessarily be
construed as the ability to let the user choose a null value.
If you add t:blankoption="always" to the select field, to restore the blank
option, then the required validation doesn't work on the client-side anymore
(but does on the server-side).
One way to get around this problem is to make an entirely new component,
identical to select, with the exception of the _validate... line shown below:
void beginRender(MarkupWriter writer) {
writer.element("select", "name", getControlName(), "id", getClientId());
_validate.render(writer);
_resources.renderInformalParameters(writer);
}
This causes the Tapestry.registerValidation(... method to include the field of
interest, and gives us the desired behaviour.
I think Select should be changed to at least allow this behaviour, if not to
make it the default behaviour.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]