IE Primefaces Введите ключ Отправить Обходной путь - PullRequest
0 голосов
/ 11 апреля 2011

Я столкнулся с IE, которая не позволяет мне нажимать клавишу ввода, чтобы отправить форму. Я нашел частичное решение (http://www.thefutureoftheweb.com/blog/submit-a-form-in-ie-with-enter), но мое диалоговое окно закрывается. Мои проверки выполняются и отображаются сообщения об ошибках. Как мне сохранить мой диалог открытым?

<p:dialog id="sgupdlg" header="#{bundle['signUp.HEADER']}" widgetVar="signUpDlg"
        modal="true" styleClass="dialog dialog1" draggable="false"
        resizable="false" showEffect="fade" hideEffect="fade" position="top">
        <h:form id="signUpFrm" binding="#{signUpDetail.signUpFrm}">
        <p:growl id="growl" showDetail="true" showSummary="false" life="3000" errorIcon="/images/Validation-Error.png" infoIcon="/images/Validation-Success.png"/> 

        <p:inputText value="#{signUpDetailBean.firstName}" name="nameInput" required="true" requiredMessage="First Name is Required"/>
        <p:inputText value="#{signUpDetailBean.lastName}" required="true" requiredMessage="Last Name is Required"/> 

        <p:commandButton styleClass="form-btn2"
                        value="#{bundle['signUp.button.LABEL']}" actionListener="#{signUpDetail.signUp}" onclick="trackingSignUpOverlaySave()" 
                        oncomplete="handleSignUpRequest(xhr, status, args)" update="growl"/>
        <p:commandButton type="reset" styleClass="close" />

        </h:form>
    </p:dialog>
    <script type="text/javascript">  


        $ = jQuery
        $(function(){
            $('input').keydown(function(e){
                if (e.keyCode == 13) {
                    $('#signUpFrm').submit();
                    return false;
                }
            });
        });


    </script>  

Ответы [ 2 ]

0 голосов
/ 09 февраля 2013

Простая метка решит это.

oncomplete = "if (args.validationFailed) {} ​​else {Professor.show (), Student.hide ();}"

вы предполагаете применить это к Professor widget var

0 голосов
/ 21 декабря 2011
function closeWhenValidationSuccesful(dialog, xhr, status, args) {
    if (!args.validationFailed) {
        dialog.hide();
    } 
}

<p:commandButton value="Save" action="doSomething" update=":formName:panelContainingValidatedElements"
    oncomplete="closeWhenValidationSuccesful(dialogWidgetVar, xhr, status, args)" />

Я использую следующее, чтобы держать диалог открытым и отображать ошибки проверки. Вам нужно будет переместить свои входные данные в panelGrid, чтобы он мог быть целевым для атрибута обновления.

...