我有一个表单,用户可以从表单中动态添加和删除一组表单字段(名字、姓氏和电子邮件)。那部分工作正常,但当然我需要对这些字段进行一些验证,如果我提交仅包含第一组字段的表单,它会很好用,并且我会在每个字段上得到验证。添加下一组字段并提交后,我会在第一组中收到验证消息,而在第二组中只有一个字段。我不太确定发生了什么,但这是 .xhtml
文件的样子:
<h:form>
<ui:repeat var="i" value="#{bean.list}">
<h:panelGrid columns="5" rowClasses="newRoow">
<h:inputText id="firstName" value="#{i.first_name}"
required="true" requiredMessage="Please enter a First Name" />
<h:inputText id="lastName" value="#{i.first_name}"
required="true" requiredMessage="Please enter a LastName" />
<h:inputText id="email" value="#{i.first_name}"
required="true" requiredMessage="Please enter an Email Address"> />
<h:commandButton value="+">
<f:ajax event="click" render="@form"
listener="#{bean.addItemFromList}" />
</h:commandButton>
<h:commandButton value="-">
<f:ajax event="click" render="@form"
listener="#{bean.removeItemFromList(i)}" />
</h:commandButton>
<h:message for="firstName" errorClass="warnings" showSummary="true" />
<h:message for="lastName" errorClass="warnings" showSummary="true" />
<h:message for="email" errorClass="warnings" showSummary="true" />
</h:panelGrid>
</ui:repeat>
<h:commandButton value="Submit"
actionListener="#{bean.someFunction}"
action="nextPage" />
</h:form>
关于为什么这会失败的任何想法?
设置第一个字段后效果很好,您可以在此处看到:http://i.imgur.com/uMrrO.png验证在每个字段下方。
对于第二个和后面的字段集,它看起来像这样:http://i.imgur.com/FeZ3T.png或有点不同,因为每次我按下添加按钮时它似乎都会验证一个字段。
最佳答案
我后来发现这不是我为这个问题编写的代码/标记的问题,而是来自 .js
包含的文件。这.js
其中有一些代码用 class="warnings"
弄乱了所有元素这是从 <h:messages />
生成的标签。
关于java - 为什么我的h :message for a specific id not displaying correctly in my dynamic form?更多在描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238937/