
Validación Primefaces para commandbuttons distintos
Publicado por Alejandro (3 intervenciones) el 16/08/2016 14:21:16
Hola a tod@s,
mi caso es un poco particular. Tengo dos botones: guardar y cursar, y quiero que guardar envíe los datos a una base de datos temporal donde se recuperarán más adelante pero cursar lo envíe a otra base de datos distinta.
Teniendo en cuenta esto, quiero que el botón de guardar valide unos pocos campos y el botón de cursar valide prácticamente todos.
De este modo, estos son mis botones:
Ocurre que si quito el validateClient del botón guardar, me cierra la ventana aunque tenga errores de validación o haya dejado campos en blanco y esto no me interesa, eso sí, debe cerrar la ventana si todo está correcto. Por tanto, debo dejarlo.
Pero en el caso del siguiente campo:
Si meto un required="true", me valida en ambos botones, si pongo un required="not empty param.cursar_informe" como he visto en algún ejemplo, me pasa lo mismo al igual que con "param['form_informe:cursar_informe'] == null"... he probado con varios ejemplos encontrados en stackoverflow y no me funciona ninguno...
A alguien le ha ocurrido algo parecido y ha encontrado solución???
Un saludo.
mi caso es un poco particular. Tengo dos botones: guardar y cursar, y quiero que guardar envíe los datos a una base de datos temporal donde se recuperarán más adelante pero cursar lo envíe a otra base de datos distinta.
Teniendo en cuenta esto, quiero que el botón de guardar valide unos pocos campos y el botón de cursar valide prácticamente todos.
De este modo, estos son mis botones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<p:commandButton id="alta_informe"
value="Guardar Informe"
update="growl"
process="@this,form_informe,form_informe:form2,form_informe:form3,nombre_taller,cif_taller,telefono_taller,fax_taller,direccion_taller,poblacion_taller,provincia_taller,codigo_postal_taller,precio_hora_taller"
validateClient="true"
actionListener="#{informeTempBean.guardarInforme}"
onsuccess="setTimeout(function(){window.opener.location.reload(); window.close();}, 2000);"
style="background-color: #A9BCF5; text-align: center; margin: 0 auto; width:400px; margin-right: 10px;">
<f:ajax onevent="handleDisableButton" />
</p:commandButton>
<p:commandButton id="cursar_informe"
value="Cursar Informe"
update="growl"
process="@this,form_informe"
validateClient="true"
actionListener="#{informeTempBean.cursarInforme}"
oncomplete="cursar_informe.hide();"
onsuccess="setTimeout(function(){window.opener.location.reload(); window.close();}, 2000);"
style="background-color: #A9BCF5; text-align: center; margin: 0 auto; width:400px;" >
<f:ajax onevent="handleDisableButton" />
</p:commandButton>
Ocurre que si quito el validateClient del botón guardar, me cierra la ventana aunque tenga errores de validación o haya dejado campos en blanco y esto no me interesa, eso sí, debe cerrar la ventana si todo está correcto. Por tanto, debo dejarlo.
Pero en el caso del siguiente campo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<p:column>
<h:outputLabel for="solicitante_temp" value="Solicitante:" />
<p:inputText id="solicitante_temp"
value="#{informeTempBean.informe_temp.solicitante}"
validatorMessage="Solicitante erroneo"
maxlength="30">
<p:clientValidator event="keyup"/>
<f:validateLength minimum="1" maximum="30"/>
<f:validateRegex pattern="^[a-zA-Z0-9_:,.' '-]+$" />
</p:inputText>
<p:message for="solicitante_temp" display="icon"/>
</p:column>
Si meto un required="true", me valida en ambos botones, si pongo un required="not empty param.cursar_informe" como he visto en algún ejemplo, me pasa lo mismo al igual que con "param['form_informe:cursar_informe'] == null"... he probado con varios ejemplos encontrados en stackoverflow y no me funciona ninguno...
A alguien le ha ocurrido algo parecido y ha encontrado solución???
Un saludo.
Valora esta pregunta


0