验证时间焦点在PrimeFaces对话框中不起作用

时间:2016-07-14 08:11:48

标签: javascript validation jsf primefaces focus

我有一个包含三个输入文本字段的对话框。

当验证激活时,焦点在第一次验证失败的输入文本字段。例如,在第二个字段中,如果没有输入值或保留为空,则将焦点放在第二个字段上。

我已尝试 <p:focus> ,但它不是在对话框上工作,而是在简单页面中正常工作。

<p:dialog id="dlg" widgetVar="dlg" resizable="false" dynamic="true"
    draggable="true" modal="true" showEffect="clip" hideEffect="clip"
    appendTo="@(body)" onShow="adjustPositionning(this.id)" closable="true"
    header="Heading">
    <p:ajax event="close" listener="#{bean.resetData()}"
        update=":uploadfrm"></p:ajax>
    <h:form id="uploadfrm" enctype="multipart/form-data">
        <p:focus></p:focus>
        <h:panelGrid id="detailPnl" columns="3">
            <p:outputLabel for="Name" value="Name" />
            <p:inputText id="CndName" maxlength="190" value="#{bean.vo.name}"
                required="true" />
            <p:message for="CndName" showDetail="true" />

            <p:outputLabel for="email" value="Email" />
            <p:inputText id="eamils" maxlength="290" value="#{bean.vo.email}"
                required="true">
                <f:validator validatorId="EmailValidator" />
            </p:inputText>
            <p:message for="eamils" showDetail="true" />

            <p:outputLabel for="MobileNoLbl" value="Mobile No" />
            <p:inputText id="MobileNo" maxlength="290" value="#{bean.vo.no}">
            </p:inputText>
            <p:message for="MobileNo" showDetail="true" />

            <div align="center">
                <p:commandButton value="save" id="saveBtn"
                    styleClass="btn btn-sm btn-success" title="Save"
                    update="uploadfrm :frm" validateClient="true"
                    action="#{bean.onSubmit()}"
                    oncomplete="if(!args.validationFailed)dlg.hide();"
                    onstart="modalDialog.show()" onsuccess="modalDialog.hide();" />
                <p:spacer width="10" />
                <p:commandButton value="Cancel" id="cancelBtn"
                    styleClass="btn btn-sm btn-default" title="Cancel"
                    update="detailPnl" actionListener="#{bean.resetData()}"
                    oncomplete="dlg.hide();" immediate="true">
                    <p:resetInput target=":uploadfrm" />
                </p:commandButton>
            </div>
    </h:form>
</p:dialog>

在使用JavaScript或primefaces时,建议我使用其他解决方案。

注意:脚本应该是客户端我不想更改我的Java代码。

0 个答案:

没有答案