2011-04-27 64 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();