我有一个表单,用户可以从表单中动态添加和删除一组表单字段(名字,姓氏和电子邮件)。这部分工作正常,但我当然需要对这些字段进行一些验证,如果我只使用第一组字段提交表单,那么它的工作效果很好,我会对每个字段进行验证。一旦我添加了下一组字段并提交,我就会在第一组上获得验证消息,而在第二组中只有一个字段。我不确定发生了什么,但这里是.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或者有点不同,因为每次按下添加按钮时它似乎都会再验证一个字段。
答案 0 :(得分:1)
我后来发现,这不是我为此问题编写的代码/标记的问题,而是来自包含的.js
文件。此.js
中包含一些代码,其中包含class="warnings"
标记生成的所有元素。
答案 1 :(得分:0)
此处提交整个表单时,同一表单中的两个组件都将被提交,因此您将收到验证错误消息。