程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PrimeFaces inputText ajax event = valueChange单击命令按钮后触发大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决PrimeFaces inputText ajax event = valueChange单击命令按钮后触发?

开发过程中遇到PrimeFaces inputText ajax event = valueChange单击命令按钮后触发的问题如何解决?下面主要结合日常开发的经验,给出你关于PrimeFaces inputText ajax event = valueChange单击命令按钮后触发的解决方法建议,希望对你解决PrimeFaces inputText ajax event = valueChange单击命令按钮后触发有所启发或帮助;

首先,您的valueChange被触发。这将更新 按钮的表单。无法100%确定这是否取决于浏览器,但是在Chromium(linux)中,不会执行对先前呈现的按钮(在更新之前)的单击。

将更新表达式更改为选择器时,可以使它工作。我的表达式会更新需要更新的元素( 按钮)。就我而言:

@H_801_8@<p:AJAX update="@(form :input:not(button))" />

请注意,该change事件是输入的默认事件,因此已删除event="valueChange"

当然,您不需要使用选择器。您也可以只更新不包含按钮的组件(如面板):

@H_801_8@<p:AJAX update="yourPanel" />

另外,AJAX="true"的默认设置p:commandbutton,因此您可以将其删除

解决方法

使用JSF和PrimeFaces 6.1,我有一个inputText字段,例如:

@H_801_8@<p:inputText value="#{BACkingBean.StringFielD}"> <p:ajax event="valueChange" update="@form" /> </p:inputText>

在同一个表单中是一个commandButton:

@H_801_8@<p:commandButton id="btnDoThatThing" ajax="true" immediate="true" update="@form" process="@this" action="#{BACkingBean.doThatThing}"/>

当我

  1. 对inputText字段进行更改,
  2. 然后单击命令按钮以外的其他位置
  3. 单击命令按钮

一切都按预期工作。但是如果我:

  1. 对inputText字段进行更改,
  2. 立即命令按钮

该按钮未触发,因为commandButton的第一次单击触发了valueChange事件在inputText字段中发生。

如果我第二次单击它,按钮动作最终会发生

现在,如果我按预期的那样将commandButton 更改p:ajax event="valueChange"p:ajax event="keyup"第一次单击,则可正常工作,但是不幸的是,inputField上的keyup事件非常hacky,并且您失去了该字段内的功能(复制/粘贴文本,文本选择,“快速”键入等)

关于如何在inputText字段中启动change事件,以及当用户在inputText字段中键入后立即单击按钮时,如何触发commandButton动作有任何想法?

谢谢你的时间!

大佬总结

以上是大佬教程为你收集整理的PrimeFaces inputText ajax event = valueChange单击命令按钮后触发全部内容,希望文章能够帮你解决PrimeFaces inputText ajax event = valueChange单击命令按钮后触发所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。