得到错误 - Fine Uploader中的捕获错误jQuery事件处理程序:对象[object Object]没有方法' getUploads'

时间:2014-03-21 14:50:45

标签: javascript jquery fine-uploader

更新了这个问题。

我遇到的问题是尝试使用getUploads API获取提交的作业数量。

当我调用该函数时,我总是得到0(零)。

不确定我做错了什么。 马特

<script>
// Wait until the DOM is 'ready'
$(document).ready(function () {
   var myUploader =  $("#fine-uploader").fineUploader({
     session: {
              endpoint: 'imageStatus.cfm',
              params : {transaction_id : <cfoutput>#client.transaction_id#</cfoutput>}
        },
        debug: true,
        request: {
            endpoint: 'upload.cfm',
            params : {details : "<cfoutput>#client.wallfolder#|#client.DonatorID#|#client.wallid#|#client.transaction_id#|#client.clientid#</cfoutput>"}
        },
     validation: {
            itemLimit: <cfoutput>#evaluate(client.numberofbricks*3)#</cfoutput>,
            allowedExtensions: ["jpeg", "jpg", "gif" , "png"],
            sizeLimit: 5000000 // 5 MiB
            },
    messages: {
        tooManyItemsError: 'You can only add <cfoutput>#client.numberofbricks#</cfoutput> images'
            },
    deleteFile: {
            enabled: true, // defaults to false
            endpoint: 'upload_delete.cfm',
            method: 'post',
            params : {wallid : "<cfoutput>#client.wallid#</cfoutput>"}
            },
    retry: {
           enableAuto: false
            },
    scaling: {
            sendOriginal: true,
            hideScaled: true,
            sizes: [
                {name: "THUMB_XX", maxSize: 113},
                {name: "FULLIMAGE", maxSize: 450}
                ]
            }
    })
.on('allComplete', function(responseJSON) {
        if (qq.status.UPLOAD_SUCCESSFUL == 'upload successful') {
        //get uuid for message  
             if ($(this).fineUploader("getNetUploads") > 0){
              $("#ContinueButton").show();
                }else{
              $("#ContinueButton").hide();
            };
    }
})//on
.on('sessionRequestComplete', function(event, id, fileName, responseJSON) {
       if ($(this).fineUploader("getNetUploads") > 0){
              $("#ContinueButton").show();
       };
 })//on
.on('deleteComplete', function(event, id, fileName, responseJSON) {
       if ($(this).fineUploader("getNetUploads") == 0){
              $("#ContinueButton").hide();
       };

    var submittedFileCount = myUploader.fineUploader("getUploads", {status: qq.status.SUBMITTED});
    alert(submittedFileCount); 

});//on

$('#ContinueButton').click(function() {
var submittedFileCount = $('#myUploader').fineUploader('getUploads').length
alert(submittedFileCount);
});

}); //close of top script - required

3 个答案:

答案 0 :(得分:0)

我猜myUploader$("#uploader-container").fineUploader({...});返回的值,它是一个jQuery对象。在这种情况下,您尝试在jQuery对象上调用getUploads,这当然不起作用。

如果你想在使用jQuery包装器时对插件进行调用,你需要这样做:

myUploader.fineUploader("getUploads", {status: qq.status.SUBMITTED});

答案 1 :(得分:0)

以下是使用jQuery上传程序在getNetUploads处理程序中使用onAllComplete的示例:

.on("allComplete", function(responseJSON) {
    console.log("allComplete");
    if ($(this).fineUploader("getNetUploads") > 0) {
        console.log("#ContinueButton.show()");
        //$("#ContinueButton").show();
    }
    else {
        console.log("#ContinueButton.hide()");
        //$("#ContinueButton").hide();
    };
    var submittedFileCount = $(this).fineUploader(
        "getUploads", {
            status: qq.status.SUBMITTED
        });
    alert(submittedFileCount);
})

相同的语法应该适用于您的代码的任何回调处理程序。

答案 2 :(得分:0)

我明白了。问题是过滤电话。我把它作为提交,它应该是qq.status.UPLOAD_SUCCESSFUL