事件=“更改”

时间:2016-11-24 13:23:22

标签: ajax jsf primefaces

我有一个表单,其中包含用姓名和ID

填写客户数据的输入
name     surname     lastName
[      ] [         ] [         ]

id       other fields
[      ] [           ]

输入通常定义为:

<p:inputText id="name" required="true" value="#{contactForm.name}" label="Name" styleClass="form-control">
    <p:clientValidator/>
</p:inputText>
<p:message for="name" />

当id字段填满I make an ajax call时,以这种方式查看数据是否与客户对应:

<p:outputLabel for="ID" value="ID" />
<p:inputText id="ID" required="true" value="ID" label="ID" styleClass="form-control">
    <p:ajax 
        event="change" 
        listener="#contactController.identifyCustomer(contactForm)}"
        process="@this name,surname1,surname2"
        update="newCustomerPanel" 
    />
    <p:clientValidator/>
</p:inputText>
<p:message for="dni" />

happy case 中,用户以正确的方式介绍所有数据,这很有效。

我的问题来自执行ajax调用时没有检索到数据并且用户需要更改一些输入,如果需要启动事件用户必须通过id输入字段更改数据并返回哪个不是方式

现在正在使用解决方法:向所涉及的所有字段插入ajax调用。当任何输入启动事件时,在服务器端我检查所有数据是否完整已更改以调用检索客户数据的服务...

但老实说,这是一个丑陋的解决方案,浪费了很多电话,并没有提供良好的用户体验。

所以我想知道,有没有办法将所有字段分组并将ajax调用和event="change"分配给此论坛?

1 个答案:

答案 0 :(得分:1)

Ajax标记可以用作多个组件的wapper:

<f:ajax event="change">
  <h:input value... />
  <h:input value... />
  <h:input value... />
</f:ajax>