验证器验证它何时不应该在JSF中

时间:2014-12-04 18:23:09

标签: validation jsf primefaces jsf-2.2

我的表单只有在<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;它仍然检查验证。有没有办法可以解决它?

0 个答案:

没有答案