gpt4 book ai didi

javascript - 如何检查 RichFaces 组件是否丰富 :messages has messages in Javascript?

转载 作者:行者123 更新时间:2023-11-30 18:24:16 25 4
gpt4 key购买 nike

我需要检查呈现的 rich:messages 组件是否附加了任何来自 JavaScript 的消息。

我在执行 AJAX 调用后通过 a4j:jsFunction 重新呈现 rich:messages 组件,我想检查 Javascript 是否附加了任何消息(这意味着验证没有通过)。

a4j:jsFunction 的代码是这样的:

<a4j:jsFunction name="validateSomething" render="erroFinaliza"
execute="@form" action="#{someMB.preview}">
</a4j:jsFunction>

现在,我在 h:commandButton 上这样调用它:

<h:commandButton onclick="validateSomething(); return false;" value="Do Something" />

我需要一种通过 JavaScript 检查验证结果的方法,然后真正提交表单。

我检查了rich:messages docs看看是否有一种方法可以检查它是否附加了任何消息,但它没有 Javascript API。

有没有人有更好的主意?

最佳答案

我在 this question 上找到了一个 hacky 解决方案.

我将 a4j:jsFunction 替换为仅用于执行验证的 a4j:commandButton

然后在这个 a4j:commandButtononcomplete 上,我放了一个 JS 检查验证是否通过,然后“点击”另一个不可见的 h:commandButton 真正提交表单,调用真正的 Action 。

所以,它是这样的:

<h:form id="id_form">
<rich:messages id="errors" />

...

<script>
function submitIfEmpty(noMessages){
if (noMessages){
document.getElementById('id_form:hiddenButton').click();
}
};
</script>

...

<a4j:commandButton value="Do Something" render="errors" execute="@form"
oncomplete="submitIfEmpty(#{empty facesContext.maximumSeverity});" />
<h:commandButton id="hiddenButton" action="#{someMB.doSomething}"
value="Do Something (not visible)" style="visibility: hidden" />
</h:form>

关于javascript - 如何检查 RichFaces 组件是否丰富 :messages has messages in Javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317198/

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