5

p:fileUpload の Update 属性と onComplete が IE10 で機能しません。IE 9 では sizeLimit 属性は無視されます。誰かがこの状況に遭遇しましたか。

p:fileUoload で onComplete 属性を使用して p:remotecommand を呼び出してみましたが、IE 10 では onComplete でも機能しないようです

<h:form id="file" enctype="multipart/form-data">
        <p:outputLabel value="Test........"></p:outputLabel>
        <p:fileUpload label="Browse..." description="Select PDF file"
            auto="true" sizeLimit="500000"
            oncomplete="refreshData()"
            onstart="alert('test');" mode="advanced"
            fileUploadListener="#{fileUpload.handleFileUpload}"
            allowTypes="/(\.|\/)(pdf|png)$/">

        </p:fileUpload>
        <p:inputText value="#{fileUpload.test}" id="test" />
        <p:remoteCommand name="refreshData" action="#{fileUpload.setData}"
            update="test"></p:remoteCommand>
    </h:form>
4

6 に答える 6

4

最後に、それがプライムフェイスのバグであることに気付きました。

http://forum.primefaces.org/viewtopic.php?f=3&t=28860#p94845

http://code.google.com/p/primefaces/issues/detail?id=5355

固定:

TargetVersion-4.0
TargetVersion-3.5.9

于 2013-04-17T13:52:32.870 に答える
3

この CSS 回避策を使用してください。これは、この問題を修正した jQuery FileUpload コンポーネントのコミットから導き出しました。

.fileinput-button input {
    -moz-transform : none !important;
    border : none !important;
    border-width : 0 !important;
    transform : translate(-300px, 0) scale(4) !important;
    font-size : 23px !important;
}
* + html .fileinput-button {
    line-height : none !important;
    padding : 2px 15px !important;
}
于 2013-06-20T18:17:40.523 に答える
0

これは、新しい 4.0 Primefaces リリースで修正されていますが、古いバージョンの Primefaces をまだ使用している場合は、回避策が必要になる場合があります。

ファイルのアップロード後に、IE 10 でも機能する onstart 属性を使用して更新できました。

fileUploadListener から呼び出されるメソッドの一部として更新される値を含む隠しフィールドを作成します。次に、p:fileUpload の onstart 属性を次のように設定します。

function checkUpload() {

    //this should call a p:remoteCommand that refreshes your hidden value
    refreshHiddenValue(); 

    var hiddenFieldValue = $('#hiddenFieldId').val();
    if(hiddenFieldValue) {
        //this should call a p:remoteCommand that refreshes the
        //sections you want refreshed after the upload has finished
        refreshSections();
    }
    else {
        setTimeout(checkUpload, 1000);
    } 
} 
于 2013-10-15T20:49:14.743 に答える
0

絶対位置の問題のようです。固定に変更してください。それは私の側で動作します:

.fileupload-buttonbar .ui-button input {
    ...
    position                          : fixed;
    ...
}
于 2013-07-09T14:51:41.627 に答える