我的表单只有在<p:inputText>
中选择了特定值时才需要验证<p:selectOneMenu>
。让我们来说<p:selectOneMenu>
有3个值:
'VALUE NORMAL'
'NEEDS VALIDATION'
'OTHER VALUE'
当用户选择&#39; NEEDS VALIDATION&#39;验证器应验证输入的长度,当用户选择任何其他值时,验证器不应验证输入的长度。
我以这种方式使用<f:validateLength>
:
<p:selectOneMenu value="#{model.selected}"
required="#{param['REQUIRED']}"
onchange="controladorSelecaoManifestacaoDestinatario.atualizarCampo(this);">
<f:selectItems value="#{tipoEventoNfeEnum.values()}"
var="tipo"
itemValue="#{tipo}"
itemLabel="#{tipo.descricao}" />
<p:ajax event="change"
process="@this"
update="justificativa"
global="false"
immediate="true"/>
</p:selectOneMenu>
<p:inputText id="justificativa"
value="#{model.someText}"
required="#{param['REQUIRED'] and model.selected == 'NEEDS VALIDATION'}"
disabled="#{model.selected != 'NEEDS VALIDATION'}">
<f:validateLength minimum="15" maximum="255" for="justificativa"/>
</p:inputText>
如果我打开表单并选择“正常情况”&#39;或者&#39;其他价值&#39;并提交表格,它没有检查长度。
如果我打开表单并选择“需要验证”。并提交表格,正确检查长度。
但是,如果我打开表单并选择“需要验证”。并提交表单,然后选择“VALUE NORMAL”&#39; VALUE NORMAL&#39;或者&#39;其他价值&#39;它仍然检查验证。有没有办法可以解决它?