当前位置: 首页 > 知识库问答 >
问题:

在event=“change”中为单个ajax调用分组元素

祁凯泽
2023-03-14

我有一个表单,输入以填写客户数据,包括姓名和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" />
<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" />

当执行ajax调用时没有检索到数据,并且用户需要更改一些输入时,我的问题就出现了,如果需要启动事件,用户必须通过id输入字段更改数据并返回,这不是方法。

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

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

共有1个答案

庄欣然
2023-03-14

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

<f:ajax event="change">
  <h:input value... />
  <h:input value... />
  <h:input value... />
</f:ajax>
 类似资料:
  • 给文本框添加监听事件,监听文本框里面文字的变化例如:   $('#exhibita').bind('hastext', function () { $('#exhibitaButton').removeClass('disabled').attr('disabled', false);}); $('#exhibita').bind('notext', function () { $('#exh

  • 问题内容: 谁能解释为什么在Python中将单个元素元组解释为该元素? 和 他们为什么不只是将元组打印为? 请参阅以下示例: 问题答案: 单个元素元组永远不会被视为包含的元素。括号对分组最有用,而不是对元组的创建。逗号会这样做。 他们为什么不只将(1,)打印为(1)? 可能是因为打印内置容器类型提供了一种表示形式,可用于通过表示重新创建容器对象,例如: 的docs在此方面提供了一些清晰度: 如果可

  • 是否可以为整数数组中的单个元素指定一个“null”值? 例如: 当我尝试这个时,它给出了一个错误,即<代码>不兼容类型: 但是,当我在对象数组中尝试相同的方法时,我可以为数组中的单个元素指定一个“null”值。 代码如下: 对象数组中允许“null”,而int数组中不允许。为什么?这两种数组类型有什么区别?我以为Java中的所有数组都是对象类型。如果我错了,请纠正我。

  • 我有一个片段,其中有recyclerview,并为其设置了适配器。如果我点击第一个添加到购物车,然后点击第二个。之后,当片段重新启动时,只有“第一次添加到购物车”的状态才会更改。同样地,如果我在重启后单击recyclerview中的第一个添加到购物车元素,则只有第二个添加到购物车的状态被更改。我想调用从0到适配器中最后一个元素的onBindViewHolder位置。在ViewHolder类中,有一

  • 问题内容: 我有很多对象,我需要将它们分成两个组成一组,以供UI助手使用。 例: 通过这四个数组成为一个数组 有很多分割数组的方法。但是,如果阵列很大,什么是最有效的(成本最低)。 问题答案: 如果您正在寻找效率,则可以使用一种方法来懒散地生成每个包含2个元素的数组,因此您一次只能在内存中存储2个元素: 此方法适用于任何Array,而不仅限于Arrays。 对于Swift 1,没有协议扩展,您将拥

  • 问题内容: 加载页面后,我将对php脚本执行Ajax调用,这将更新服务器。但是,此脚本有时可能需要一分钟才能完成,并且在脚本运行时,我无法执行我需要处理的其他Ajax调用- 即第一个Ajax调用不应中断其他Ajax调用。任何想法如何做到这一点? 首次Ajax通话: 第二个Ajax调用(用户触发的调用): 问题答案: 腺苷的上述评论是正确的。 “在PHP中,一次只能在一个会话上运行一个脚本,以免覆盖