Ho il seguente pezzo di codice all'interno di un h:form
Primefaces Captcha scompare o non si aggiorna/aggiorna su un input non valido?
<h:panelGrid id="captchaGrid">
<p:captcha id="captcha" label="Captcha" required="true"
requiredMessage="required"
validatorMessage="...">
</p:captcha>
<p:message id="captchaMessage" for="captcha" />
</h:panelGrid>
<p:commandButton id="submitButton" value="save"
actionListener="#{userBean.save}" update="captchaGrid"
onstart="doSomething()"
oncomplete="doSomethingElse(xhr, status, args)" icon="ui-icon-check">
</p:commandButton>
Questo funziona bene se entro correttamente il captcha. Tuttavia, se inserisco un valore non valido, il componente captcha scompare.
Ho provato a rimuovere l'attributo update="captchaGrid"
. Questa volta, il captcha non è scomparso. Invece, non si è aggiornato visivamente ma (credo) internamente. Perché digitare correttamente le due parole genera ancora un errore di convalida.
Inoltre; Non voglio usare ajax="false"
.
Aggiornamento: Ho anche provato oncomplete="Recaptcha.reload()"
. Non ha funzionato C'è un bug Ma non so se è il mio codice o Primefaces 3.0 :)
Aggiornamento 2: Come indicato da maple_shaft, risulta che questo è un problema con Primefaces/Recaptcha. Quindi sto cercando degli hack sporchi che potresti suggerire.
Qualsiasi aiuto apprezzato.
Io davvero non come la tua risposta maple_shaft, ma grazie :) c'è un modo posso presentare una h ': form' che contiene un' iframe'? Naturalmente, mi piacerebbe presentare anche il contenuto dell 'iframe. –
@ Murat Non credo che sia così che funzionano gli iframe.Il contenuto dell'iframe è una pagina completamente diversa, quindi affinché ciò sia possibile, è probabilmente necessario un Javascript intelligente. Non ho usato iframe in oltre 8 anni, quindi non ricordo molto. Dovresti chiedere di inviare un modulo all'interno di un iframe dalla pagina principale in una domanda diversa per ottenere una risposta migliore. –