[
https://issues.jboss.org/browse/RF-11833?page=com.atlassian.jira.plugin.s...
]
Lukáš Fryč edited comment on RF-11833 at 3/19/12 10:01 AM:
-----------------------------------------------------------
There is no simple fix, since what JSF do for encoding {{for}} attribute is just taking
client ID:
{code:title=JSF RI 2.1.5, LabelRenderer:85|Java}
String forClientId = null;
String forValue = (String) component.getAttributes().get("for");
if (forValue != null) {
forValue = augmentIdReference(forValue, component);
UIComponent forComponent = getForComponent(context, forValue, component);
if (forComponent == null) {
// it could that the component hasn't been created yet. So
// construct the clientId for component.
forClientId = getForComponentClientId(component, context,
forValue);
} else {
forClientId = forComponent.getClientId(context);
}
}
{code}
When we encode inputs for components with complex DOM structure,
we use {{clientId}} for the root of the component's DOM and then input then needs to
have ID/name with suffix, which is expected behavior.
Then using {{clientId}} for input [1] would lead to incompatibility with AJAX, which
expects having {{clientId}} on the root of the component's DOM.
[1]
https://github.com/richfaces/components/blob/develop/input/ui/src/main/te...
was (Author: lfryc):
There is no simple fix, since what JSF do for encoding {{for}} attribute is just
taking client ID:
{code:title=JSF RI 2.1.5, LabelRenderer:85|Java}
String forClientId = null;
String forValue = (String) component.getAttributes().get("for");
if (forValue != null) {
forValue = augmentIdReference(forValue, component);
UIComponent forComponent = getForComponent(context, forValue, component);
if (forComponent == null) {
// it could that the component hasn't been created yet. So
// construct the clientId for component.
forClientId = getForComponentClientId(component, context,
forValue);
} else {
forClientId = forComponent.getClientId(context);
}
}
{code}
When we encode inputs for components with complex DOM structure,
we use {{clientId}} for the root of the component's DOM and then input then needs to
have ID/name with suffix, which is expected behavior.
Label for calendar results in non-valid markup
----------------------------------------------
Key: RF-11833
URL:
https://issues.jboss.org/browse/RF-11833
Project: RichFaces
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: component-input
Affects Versions: 4.1.0.Final
Reporter: Pavol Pitonak
Assignee: Lukáš Fryč
Priority: Trivial
Fix For: 4.2.1.CR1
The code in first code snippet results in markup below which is not valid. The for
attribute of the label element must refer to a form control, e.g. the actual input inside
calendar (that with ID dateForm:fromDateInputDate).
{code:xml}
<h:outputLabel value="From date" for="fromDate" />
<rich:calendar id="fromDate" .../>
{code}
{code:xml}
<label for="dateForm:fromDate">From date</label>
<span class="calendar" id="dateForm:fromDate">
<span id="dateForm:fromDatePopup" style="white-space:
nowrap;">
<input class="rf-cal-inp " id="dateForm:fromDateInputDate"
name="dateForm:fromDateInputDate" readonly="readonly"
style="vertical-align: middle; " type="text" value="Nov 19,
2011" />
...
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira