CommandButton deaktivieren-Funktionalität, wenn inputText Validierung fehlschlägt oder ajax-call startet

Habe ich das folgende Stück code in einem Formular:

<p:panel id="panel" header="lalalala">
    <h:panelGrid columns="5">

        <h:outputLabel value="Enter name" for="name" />

        <p:inputText id="name" value="#{userBean.name}"
            required="true" label="name" maxlength="15"
            validatorMessage="oops"
            requiredMessage="ooopps">
            <f:validateRegex
                pattern="^somepattern$">
            </f:validateRegex>
            <p:ajax event="blur" update="inputValidationMessage" />
        </p:inputText>

        <p:message id="inputValidationMessage" showSummary="false"
            for="name" />
        <p:watermark for="name" value="eg. John" />

    </h:panelGrid>

    <p:commandButton id="submitButton" value="Submit" update="panel"
        actionListener="#{userBean.save}"
        onclick="handleOnclick"
        oncomplete="handleAjaxResponse(xhr, status, args)">
    </p:commandButton>
    <p:messages autoUpdate="true" globalOnly="true" showDetail="true" />
</p:panel>

Also die Prüfmeldungen in der Arbeit auch auf die inputText element. Aber der submit-button ist noch ein Ajax-request, wenn Sie geklickt werden, auch wenn die Eingabe ungültig ist. Ich möchte den Ajax-request gesendet werden, iff der inputText ist gültig.

Wie mache ich das?

Außerdem, es gibt einen anderen Fall würde ich gerne deaktivieren Sie die Schaltfläche. Dies ist der Fall, wo inputText ist validiert und der Benutzer auf die Schaltfläche klickt. Der Grund für dieses ist, weiß ich nicht möchten, dass der Benutzer versehentlich Flut von Anfragen. (ich.e drücken Sie wiederholt auf die Schaltfläche Absenden)

Derzeit, die handleOnclick javascript-Funktion, die nur zeigt ein modales Dialogfeld sagt "warten". Da dieser dialog modal ist, wird der hintergrund nicht möglich ist. Jedoch, dass immer noch nicht verhindern, dass die Benutzer aus, und drücken Sie Sie wiederholt, weil 1 Sekunde vergeht zwischen onclick und modalen dialog angezeigt. Außerdem; dieser Ansatz nicht verhindern, dass die übermittlung Ungültiger Daten. Was können Sie vorschlagen?

Benutze ich JSF2.0 und Primefaces 3.0.

Jede Hilfe dankbar.

Schreibe einen Kommentar