gpt4 book ai didi

jsf - 显示

validation errors inside

转载 作者:行者123 更新时间:2023-12-04 19:21:34 27 4
gpt4 key购买 nike

我有一个隐藏的<p:fileUpload>通过 <h:outputLabel> 打开.

<p:messages id="message" autoUpdate="true" />

<h:form id="form">

<p:fileUpload id="file-input" auto="true"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" sizeLimit="10"
invalidSizeMessage="wrong size" fileUploadListener="#{bean.image}"
update="@form message" style="display: none;"
invalidFileMessage="wrong file" />

<h:outputLabel for="file-input_input">
<h:graphicImage name="images/dummy.jpg" />
</h:outputLabel>

<h:outputText value="#{bean.file.fileName}" />
<br />
<h:outputText value="#{bean.file.size}" />
</h:form>

不幸的是,验证失败后不会显示任何消息(例如无效大小或无效文件)。这些消息显示在 <p:fileUpload> 中内容框而不是 <p:messages> .

如何在 <p:messages> 中显示这些消息?而不是在里面 <p:fileUpload>

最佳答案

验证完全在客户端执行,无需访问服务器。所以你不能从服务器端控制它。

<p:fileUpload> 的消息容器可通过 messageContainer 获得小部件变量的属性。简单的让 jQuery 把它移到 <p:messages> 中单击标签时:

<p:messages id="messages" ... />

<h:form>
<p:fileUpload id="file-input" widgetVar="file-input" ...
styleClass="ui-helper-hidden" />
...
<h:outputLabel for="file-input_input" ...
onclick="PF('file-input').messageContainer.appendTo($('#messages'));" />
</h:form>

(我只是将 <p:message id> 重命名为更合理,并使用 PrimeFaces 特定类来隐藏它而不是内联样式)

onstartoncomplete <p:fileUpload> 的属性不可用,因为它们仅在客户端验证通过并且文件上传请求实际发送时才执行。

关于jsf - 显示 <p :fileUpload> validation errors inside <p:messages>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31803012/

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