当前位置: 首页 > 面试题库 >

上传文件后提交JQuery表单

范楚
2023-03-14
问题内容

我意识到这个问题的变体已经出现了很多次,但是我找不到在这种情况下能回答这个问题的人。

我正在使用第三方fileuploader,该文件利用jQuery并在文件上传完成时给出成功回调。

我要实现的是一个带有文本字段的表单以及fileuploader,当您单击“提交”时,该表单将触发上传功能(文件开始使用进度条开始上传),并等待成功回调之前继续提交表格。

我必须立即承认我是jQuery的白痴,这使我完全困惑,所以我不确定如何实现这一点。

到目前为止,我的尝试仅导致表单尝试在文件上载时立即提交。

manualuploader.uploadStoredFiles();单击“立即上传”按钮时,将实例化该功能

实例化文件上传器的jQuery如下:

<form action="index.php" method="post" enctype="multipart/form-data" id="uploader">
<div id="manual-fine-uploader"></div>
<div id="triggerUpload" class="btn btn-primary" style="margin-top: 10px;">
<input type="text" name="textbox" value="Test data">
<input name="test" type="button" value="Upload now">
</div>
</form>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="fineuploader-3.6.3.js"></script>
<script>
$(document).ready(function() {
var manualuploader = new qq.FineUploader({
        element: $('#manual-fine-uploader')[0],
        request: {
                endpoint: 'uploader.php'
        },
        autoUpload: false,
        text: {
                uploadButton: '<i class="icon-plus icon-white"></i> Select Files'
        }
        });
        $('#triggerUpload').click(function() {      
        manualuploader.uploadStoredFiles();
        });
});

</script>

问题答案:

我注意到您正在使用jQuery。您为什么不将jQuery包装器用于Fine
Uploader

我将收听onComplete上载完成(成功与否)后触发的回调。当onComplete被触发时,我们将在submitForm()其中包含用于检查所有文件是否已成功提交的逻辑。

逻辑相对简单:如果我们没有正在进行的文件,也没有文件包含qq.statusFAILED那么我们可以继续提交表单。

另外,我会侦听onCancel回调,以确保如果上传不成功并因此被取消,则表单将提交。

还有更多的回调。我建议阅读有关回调以及API方法的Fine
Uploader文档。此外,我将看一下Fine Uploader jQuery
docs

如果了解jQuery是您的问题,那么建议您将其保留在附近。

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="fineuploader-3.6.3.js"></script>

<form action="index.php" method="post" id="uploader">
<input type="text" name="textbox" value="Test data">
    <div id="manual-fine-uploader"></div>
    <div id="triggerUpload" class="btn btn-primary" style="margin-top: 10px;">
    </div>
</form>



$(document).ready(function() {

    $("#triggerUpload").click(function () {
        $("#manual-fine-uploader").fineUploader('uploadStoredFiles'); 
    });

    function submitForm () { 
        if ($(this).fineUploader('getInProgress') == 0) {
            var failedUploads = $(this).fineUploader('getUploads', 
                { status: qq.status.UPLOAD_FAILED });
            if (failedUploads.length == 0) {    
                // do any other form processing here
                $("#uploader").submit();
            }
        }
    };

    // Instantiate a Fine Uploader instance:
    $("#manual-fine-uploader").fineUploader({
        autoUpload: false,
        request: {
            endpoint: "/uploads_bucket"
        }
    }).on("complete", function (event, id, name, response) {
        submitForm.call(this);
    }).on('statusChange', function (event, id, oldStatus, newStatus) {
        if (newStatus === qq.status.CANCELED) {
            submitForm.call(this);
        } 
    });
});

让我知道您是否还有其他需要协助的问题。



 类似资料:
  • 问题内容: 我有一个带有以下输入标记的HTML页面: 单击页面上的按钮将打开文件对话框。如果要进行实际的上载,则需要另一个按钮来单击(提交),因为此输入文件按钮仅用于提供文件的路径。 选择文件后,是否可以单击浏览按钮,选择文件并立即启动上传功能?如果是,任何人都可以提供代码段吗?谢谢。 问题答案: 如果您希望在用户选择之后提交表单,则只需添加

  • 问题内容: 是否可以在没有jQuery或IFrames的情况下提交AJAX表单(因此仅是纯JavaScript)?我当前正在发送到有效的struts fileUploadAction。操作的代码是否仍可与异步提交一起使用,或者是否需要进行其他操作以获取异步表单提交? 我正在使用struts 1.x,目前我的表单是: 可以提交此表格,从而通过AJAX上传文件吗? 问题答案: 如果我理解正确,则可以使

  • 问题内容: 我有一个简单的文件上传表格。选择文件后,如何使其自动提交?我不希望用户必须单击“提交”按钮。 问题答案: 您可以在输入文件时简单地调用表单的方法。

  • 本文向大家介绍JQuery异步提交表单与文件上传功能示例,包括了JQuery异步提交表单与文件上传功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JQuery异步提交表单与文件上传功能。分享给大家供大家参考,具体如下: Jquery.form.js是一个可以异步提交表单及上传文件的插件。 示例如下: index.html p.php 效果图: 更多关于jQuery相关内容感兴趣的读

  • 本文向大家介绍php实现表单提交上传文件功能,包括了php实现表单提交上传文件功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了php实现表单提交上传文件功能的具体代码,供大家参考,具体内容如下 首先创建含表单的html文件:upload.html 再创建服务端文件:upload.php 点击提交后呈现出文件: 本文已被整理到了《php文件上传操作汇总》 ,更多精彩内容,欢迎大家学

  • 本文向大家介绍php利用fsockopen GET/POST提交表单及上传文件,包括了php利用fsockopen GET/POST提交表单及上传文件的使用技巧和注意事项,需要的朋友参考一下 php利用fsockopen GET/POST提交表单及上传文件,具体内容如下 1.GET get.php getapi.php 2.POST post.php postapi.php 3.上传文件 file