是否可以在FileUpload组件中的“选择”按钮中添加一个监听器?
我在高级模式下使用p:fileUpload。
我浏览了文档,它只支持在单击“上传”按钮后触发的fileUploadListener。(尝试了actionListener,validationListener)
PrimeFaces的版本是5.3。
p:fileUpload的定义:
eval old$(alias ls);alias ls="LC_COLLATE=C $oldls"
我基本上想要在用户单击“选择”按钮时清除验证错误。由于选择按钮包含在fileUpload组件中,因此无法为其分配侦听器。
尝试调整此链接中的代码并向按钮添加侦听器,但没有成功:
<p:fileUpload
fileUploadListener="#{ipchYonetimiController.handleFileUpload}"
widgetVar="aras"
mode="advanced" dragDropSupport="false" update="@this toplumsgs"
sizeLimit="100000" fileLimit="1"
cancelLabel="İptal et" allowTypes="/(\.|\/)(xlsx)$/"
invalidSizeMessage="Dosya boyutu çok büyük"
invalidFileMessage="Dosya formatı xlsx olmalı"
fileLimitMessage="Sadece bir dosya yükleyebilirsiniz" />
How to disable Choose button in PrimeFaces FileUpload until the upload is complete
答案 0 :(得分:3)
你可以尝试一下 - 它对我有用:
<p:fileUpload id="fileupload" ..... />
<script>
$(document).on("click", ".ui-fileupload input[type=file]", function(event){
$(this).closest('.ui-fileupload').find('.ui-icon-close').trigger('click');
});
</script>
答案 1 :(得分:1)
您可以设置验证消息的超时时间,而不是使用文件上传组件。请参阅:How to hide after it displayed the messages
第二个选项是使用growl作为错误消息。
编辑: 当用户点击上传按钮时,会启动onstart事件,以便您可以使用它。
<p:fileUpload onstart="PF('validationMsg').hide()" />