2011-04-27 62 views
1

我正在面對與valums Ajax文件上傳有關的問題。調用Valums來自其他DOM元素的Ajax上傳器

由於插件在服務器端進行了一些修改後運行良好,我無法實現特定的行爲。

我的DOM是由一個輸入文件加上容器來實例化文件上傳按鈕。

我想要的是當點擊輸入文件[name =「upload-file」]時能夠啓動fileuploader插件。

... 
<div id="upload-accepted"> 
    <fieldset> 
    <label for="upload-file">Select a file:</label> 
    <input type="file" name="upload-file" id="upload-file"/> 
    <noscript> 
     <p>Please enable JavaScript to use file uploader.</p> 
    </noscript> 
    </fieldset> 
    <div id="upload-container"> 
    </div> 
</div> 
... 
<script type="text/javascript"> 
    $(function() { 
     var uploader = new qq.FileUploader({ 
     action: '/file-upload', 
     element: document.getElementById('upload-container'), 
     onSubmit: function(id, filename){...}, 
     onComplete: function(id, fileName, responseJSON){...} 
    }); 
    }); 
</script> 

我嘗試添加在腳本里,但它不工作

$("#upload-file").live('change', function(event) { 
    event.preventDefault(); 
    $('.qq-upload-button').trigger('click'); 
    return false; 
}); 

任何線索?

在此先感謝!

+0

你有一個現場演示?不需要訪問實際的上傳,但我需要看看你真的想要做什麼。 – Bene 2011-04-27 17:02:00

回答

1

您應該觸發此:

$('input[name="file"]').trigger('click');

這對我的作品!

+0

不適用於我。 – 2011-11-07 15:32:17

+0

工作對我來說也很完美! – Drew 2013-10-18 19:29:07

0

當設置指定選項元素,通常像這樣一個FileUploader:

new qq.FileUploader({ 
    element: document.getElementById('uploadImage'), 
... 

如果檢查DOM腳本插入上傳裏面DIV輸入這個ID。所以你應該能夠訪問輸入和鏈接點擊行爲。

如果您正在使用jQuery應該工作是這樣的:

$('#uploadImage input').trigger('click'); 

或者乾脆

$('#uploadImage input').click();