2017-06-07 6 views
1

Richfaces 4 fileuploadを使用して1つのファイルをアップロードしています。RichFaces FileUploadボタンを追加せずにcommandLinkを呼び出す

私の場合は、ただ1つのリンクをクリックしてブラウザを参照してファイルを選択したいと思うだけです。

<h:form id="stratFileUploadForm"> 
    <rich:fileUpload id="stratFileUpload" execute="@this" 
     fileUploadListener="#{doUploadedFile}" 
     onuploadcomplete=" 
            jQuery(#{rich:element('stratFileUpload')}).find('.rf-fu-itm-lnk').click(); 
            " 
     noDuplicate="true" maxFilesQuantity="1" 
     sizeExceededLabel="#{msg['sizeExceeded']}" 
     uploadLabel="#{msg['upload']}" /> 
</h:form> 

は、私はすでにIDのcommandLinkに呼び出す:

<a4j:commandLink id="showFileUpload" 
        execute="@this" 
       action="#{doSomething.Something(a)}" 
       render="@none" 
       oncomplete="#{rich:element('stratFileUpload')}.click();" 
       > 
       <h:graphicImage value="/images/A.png" /> 
      </a4j:commandLink> 

そして、ファイルアップロードの一部だけで、その上にファイルアップロードを持つフォームです:

だから私のコードで私に、commandLinkを持っていますフォームと豊富な:fileUploadのIDは何も動作しません。

これが機能する唯一の方法はポップアップで、その場合は「+追加」ボタンが付いています。

答えて

0

問題は、ChromeによってブロックされていたChromeのアップロードブラウザのためでした。ファイルを選択するブラウザにはアクセスできませんが、IE、Edge、Firefoxではそのブラウザが表示されます。なぜならアクションとonCompleteの

コードのこの部分の間の時間で、ブラウザファイル(ポップアップ)をブロッククローム:

<a4j:commandLink id="showFileUpload" 
        execute="@this" 
       action="#{doSomething.Something(a)}" 
    ... 
      </a4j:commandLink> 
1

本当にRichFaces 2.0ですか?

fileUploadをクリックすると、何もしません(手動でクリックする場合と同じです)。あなたはファイル入力をクリックしなければなりません。

$(".rf-fu-btn-cnt-add input").click() 

が、私はすべてのブラウザがボタンが隠されているとき、あなたがいることをやらせるかはわかりません。

+0

だから、これ(onCompleteの= "#{豊富にonCompleteのを変更します。要素 –

+0

リッチフェイスは4バージョンです。 –

+0

これをそのままにしておくか(必要な場合は$をjQueryに変更します)、 idsを見ていない。 – Makhiel

関連する問題