FileUploadコンポーネントの「選択」ボタンにリスナーを追加することはできますか?p:fileUploadの選択ボタンにリスナーを追加する方法
アドバンストモードでは、p:fileUploadを使用します。
私はドキュメンテーションを経て、それだけで「アップロード」ボタンをクリックした後にトリガされfileUploadListenerをサポートしています。(あまりのactionListener、validationListenerを試してみました)PrimeFacesのバージョンは5.3です。 Pの
定義:ファイルアップロード:ここ
<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" />
私は基本的にユーザーが選択したボタンをクリックしたときに検証エラーをクリアしたいです。選択ボタンはfileUploadコンポーネントでラップされているため、リスナーを割り当てることはできません。
は、このリンクでコードを微調整し、ボタンにリスナーを追加しようとしましたが、何の成功:
PF('aras').chooseButton.addEventListener(...)
How to disable Choose button in PrimeFaces FileUpload until the upload is complete
いや、問題は、ファイルが「handleFileUpload」に有効な内容を持っているか、いない場合は、私がチェックし、あります。問題があれば、このような検証例外がスローされます(値は英語の行1の数値でなければなりません)。その後、ユーザーがxlsxファイルを修正してもう一度「選択」した場合(アップロードするのではなく、単に選択した場合)、その検証エラーはクリアされます。基本的には、ユーザーが「選択」ボタンをクリックすると、すべての検証エラーをクリアしたいだけです。私はそれを作成しなかったので(fileUploadコンポーネントに属します)、リスナーを割り当てることはできません。 – sarah
クライアントサイドのすべてがhtml/css/javascriptであることに注意してください。だからあなたは答えが示すようにプレーンhtmlでできるように、**クライアント側のリスナを割り当てることができます**。これはほぼすべてに当てはまります! – Kukeltje