Mike,
Adding immediate="true" to the first property, includeAllSignals, worked :)
As to what I am expecting:
1) Selecting "includingAllSignals" = false should display the list of
selectedSignals and fail validation if nothing in the list is selected
2) Selecting "includingAllSignals" = true should NOT display the list of
selectedSignals and perform not validation on selectedSignals.
Paul Spencer
Mike Kienenberger wrote:
Paul, this should work, although I'd expect some issues with
cross-validation. Ie, i'd put the checkbox in a subForm so you can
toggle it even when the list is required. Immediate=true might be
enough in this particular case depending on the rest of your page,
though.
You didn't really describe what is not working the way you expect it to
work.
On 4/26/07, Paul Spencer <[EMAIL PROTECTED]> wrote:
I have two properties on a form. The first property is Boolean and
the second property is list. If the first
property, includeAllSignals, is false, then the second property,
selectedSignals, is required. The
validation of the second property fails when the first property goes
from false to true.
<h:panelGroup>
<h:selectOneRadio id="includeAllSignals"
value="#{manager.includeAllSignals}"
valueChangeListener="#{manager.changeIncludeAllSignals}"
onclick="submit();">
<f:selectItem itemValue="#{true}" itemLabel="All" />
<f:selectItem itemValue="#{false}" itemLabel="Selected" />
</h:selectOneRadio>
<t:selectManyCheckbox id="selectedSignals"
value="#{manager.signals}"
rendered="#{!manager.includeAllSignals}"
required="#{!manager.includeAllSignals}">
<f:selectItems value="#{manager.signalList}" />
</t:selectManyCheckbox>
</h:panelGroup>
Note: The second property is not rendered when the first property is
true. This works
as expected.
Any ideas how to force the validation to use the new value of the
first property when
the first value changes?
Paul Spencer