如何在p:fileUpload中添加侦听器选择按钮

时间:2017-05-24 07:15:11

标签: javascript jsf primefaces

是否可以在FileUpload组件中的“选择”按钮中添加一个监听器?

我在高级模式下使用p:fileUpload。

我浏览了文档,它只支持在单击“上传”按钮后触发的fileUploadListener。(尝试了actionListener,validationListener)

PrimeFaces的版本是5.3。

p:fileUpload的定义:

eval old$(alias ls);alias ls="LC_COLLATE=C $oldls"

以下是我需要它的原因: enter image description here

我基本上想要在用户单击“选择”按钮时清除验证错误。由于选择按钮包含在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

2 个答案:

答案 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()" />