gpt4 book ai didi

jsf - 使用 JSF 单击按钮后重置 inputText

转载 作者:行者123 更新时间:2023-12-04 21:16:30 24 4
gpt4 key购买 nike

在 JSF 中单击 commandButton 后是否可以重置 inputText 的值? inputText UIElement 提供了 ResetValue 方法,所以我尝试了这样的事情:

<h:inputText  id="measurementadd" binding="#{inputTextMeasurement}">
<f:validateRegex pattern="[a-zA-Z ]*"/>
<f:ajax event="keyup" render="measurementaddmessage submit" execute="@this"/>
<h:inputText>
<p:commandButton id="submit" action="#{Bean.addMeasurement(inputTextMeasurement.value)}"
value="submit" update="dataTable measurementadd measurementaddmessage"
disabled="#{empty inputTextMeasurement.value or facesContext.validationFailed }" >
<f:ajax event="mouseup" execute="#{inputTextMeasurement.resetValue()}" />
</p:commandButton>
<h:messages for="measurementadd" id="measurementaddmessage"/>

但在单击按钮后,inputTextMeasurement 不会重置它的值。

有人知道解决这个问题的好办法吗?

我正在寻找没有 JS 和 JAVA 的解决方案,所以在 JSF 中实现会非常酷。

最佳答案

您的错误在 execute 中属性:

<f:ajax event="mouseup" execute="#{inputTextMeasurement.resetValue()}" />

execute属性应表示以空格分隔的客户端 ID 集合,以包含在 ajax 请求的处理/解码中。但是,您在那里指定了一个监听器方法。

您需要 listener改为属性:

<f:ajax listener="#{inputTextMeasurement.resetValue()}" />

(我省略了 event,因为这里默认为 click,这已经是正确的了)

有趣的细节是另一个 <f:ajax>在同一段代码中使用了 exeucte归因于正确的方式。


与具体问题无关,你看过 <p:resetInput> 了吗? ?这在 bean 中保存了一个 ajax 监听器方法。替换整个<f:ajax>

<p:resetInput target="measurementadd" />

关于jsf - 使用 JSF 单击按钮后重置 inputText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19983378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com