我有一个包含三个输入文本字段的对话框。
当验证激活时,焦点在第一次验证失败的输入文本字段。例如,在第二个字段中,如果没有输入值或保留为空,则将焦点放在第二个字段上。
我已尝试 <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代码。