从其他DOM元素调用Valums Ajax上传器

时间:2011-04-27 16:07:01

标签: javascript ajax jquery

我遇到了Valums Ajax文件上传的问题。

由于插件在服务器端进行了一些修改后工作正常,我无法实现特定的行为。

我的DOM由输入文件和容器组成,用于实例化文件上载按钮。

我想要的是能够在单击input:file [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;
});

任何线索?

提前致谢!

2 个答案:

答案 0 :(得分:1)

你应该触发:

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

对我有用!

答案 1 :(得分:0)

设置FileUploader时,指定option元素,通常是这样的:

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

如果检查DOM脚本,则使用此id在div中插入上传输入。因此,您应该能够访问输入并链接点击操作。

如果您使用的是jQuery,它应该是这样的:

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

或只是

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