单击按钮时的jquery fileupload

时间:2012-10-28 08:08:04

标签: jquery asp.net file-upload

我使用了fileupload.js jquery插件并按照本教程实现:ASP.NET Ajax file upload using jQuery File Upload plugin

这很好用,但是一旦使用输入(fileuplaod控件)选择文件,就会引发事件并上传文件。但是,我只是在点击按钮后尝试这样做。

以下是代码:

<input id="fileupload" type="file" name="file" multiple="multiple"/>
<input id="btnSubmit" type="button" value="Start Upload"/>

    $('#fileupload').fileupload({
      //uploads file
    });

需要做类似的事情:

  $('#btnSubmit').click(function () {
       $('#fileupload').fileupload({
         //uploads file
       });
    });

我想我们可以使用回调选项执行此操作,但我无法正确理解:Callback Options

5 个答案:

答案 0 :(得分:4)

试试这个:

<input id="fileupload" type="file" name="file" multiple="multiple"/>

<script>
$('#fileupload').on('click', function(){
    //uploads file
});
</script>

在jQuery中使用'on'。

问候。

答案 1 :(得分:2)

您可以执行此操作,通过“添加”选项上传文件

标记

<input id="files" type="file" name="files" multiple="multiple"/>
<input id="fileupload" type="file" name="file" multiple="multiple" style="display:none;"/>
<input id="btnSubmit" type="button" value="Start Upload"/>

IN JQuery

$('#btnSubmit').click(function () {
    var inputs = $('#files'); 
    var arr = $.makeArray(inputs); // turn the jQuery objects into an array
    var filesList = $.map(arr, function (element, index) { 
        return element.files;
    });

    $('#fileupload').fileupload('add', { files: filesList }); // upload by calling 'add'
});

答案 2 :(得分:2)

在您关于此插件的链接中说明: “正如文档所述,'添加'默认使用'data.submit()'提交数据。但您可能希望对所选文件执行验证,例如,文件扩展名是正确的。所以您的实现可能看起来像这样:“

if(valid)
 data.submit();

以下是: “另一种选择可能是指示上传插件不要立即开始上传文件,并验证用户手动点击某个”上传“按钮的时间。”

所以我想你必须剪切这个data.submit()行,而是在你的点击按钮事件处理程序中调用它。

答案 3 :(得分:1)

试试这个:

<input id="fileupload" type="file" name="file" multiple="multiple" onClick="uploadFunction"/>

<script>
uploadFunction()
{
$('#fileupload').fileupload({
  //uploads file
});
}
</script>

答案 4 :(得分:1)

button id =“buttonUpload”onclick =“return ajaxFileUpload();” style =“font-size:11px”&gt;                     上传/&gt;

img id =“loading”src =“images / loading.gif”style =“display:none;” /&GT; - 使其进度吧

在脚本标签中包含以下内容并根据您的要求进行修改

function ajaxFileUpload(){

        $("#loading")
.ajaxStart(function() {
    $(this).show();
})
.ajaxComplete(function() {
    $(this).hide();
});

$.ajaxFileUpload
    (
        {
            url: 'AjaxImageUploader.ashx',
            secureuri: false,
            fileElementId: 'fileToUpload',
            dataType: 'json',
            data: {},
            success: function(data, status) {

            },
            error: function(data, status, e) {
                alert(e);
            }
        }
    )

        return false;
    }