2

我有一个表单,用户可以从表单中动态添加和删除一组表单字段(名字、姓氏和电子邮件)。那部分工作正常,但当然我需要对这些字段进行一些验证,如果我只提交带有第一组字段的表单,它会很好,并且我会在每个字段上得到验证。添加下一组字段并提交后,我会在第一组中收到验证消息,而第二组中只有一个字段。我不太确定发生了什么,但这是.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或有点不同,因为它似乎每次按下添加按钮时都会验证一个字段。

4

2 回答 2

1

后来我发现这不是我为这个问题编写的代码/标记的问题,而是来自包含的.js文件。这其中有一些代码与从标签生成的.js所有元素混淆。class="warnings"<h:messages />

于 2013-02-04T20:28:43.013 回答
0

这里在提交整个表单时将提交同一表单中的两个组件,因此您将收到验证错误消息。

于 2013-01-17T04:26:09.013 回答