Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Iframe Post Form-在更改输入字段时提交html表单_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript Iframe Post Form-在更改输入字段时提交html表单

Javascript Iframe Post Form-在更改输入字段时提交html表单,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个非常简单的html表单: <form enctype="multipart/form-data" method="POST" action="fileupload" id="image-upload-form" target="iframe-post-form"> <input type="file" name="file" id="file-to-upload"> <input type="submit" value="upload" id

我有一个非常简单的html表单:

<form enctype="multipart/form-data" method="POST" action="fileupload" id="image-upload-form" target="iframe-post-form">
    <input type="file" name="file" id="file-to-upload">
    <input type="submit" value="upload" id="image-upload-submit">
</form>
现在,我想取消提交按钮,而页面应该在选择文件后立即自动提交图像。我是jquery和jscript的初学者,我一定犯了一些小错误,但我不明白为什么几乎相同的代码对我不起作用。下面是错误的代码(我可以在firebug中看到,我在代码中的断点被击中,但图像不再提交):

我将非常感谢你的帮助

解决方案:

在收到@Huangism的建议后,我终于找到了解决办法。我会发布它,以防有人需要解决相同的问题:

$(function() {
    $('#file-to-upload').bind('change', function(event) {
        $('#image-upload-form').submit().iframePostForm({
            post : function() {
                $("#progress-indicator").show();
            },
            complete : function (response) {
               $("#progress-indicator").hide();
               try {
                   json = $.parseJSON(response);                    
               } catch (e) {}
            }
        });
    });
});

我从未使用过iframe post form lib,但最初的工作代码看起来像是在文档就绪时设置侦听器,在代码中,您将设置放在要上载的文件的change函数中。所以基本上每次加载的文件发生变化时,它都会设置整个post表单


您需要在更改时调用表单的提交功能。我不太确定post-form-lib是做什么的,我也不知道您的整个代码结构,所以我真的不能提出任何其他建议。但是你的代码的问题是你把post表单的设置放错了地方

我从来没有使用过iframe post form lib,但是最初的工作代码看起来像是在文档就绪时设置侦听器,在你的代码中,你把设置放在了要上传的文件的change函数中。所以基本上每次加载的文件发生变化时,它都会设置整个post表单


您需要在更改时调用表单的提交功能。我不太确定post-form-lib是做什么的,我也不知道您的整个代码结构,所以我真的不能提出任何其他建议。但是代码的问题是,您将post表单的设置放在了错误的位置

您应该添加解决方案作为答案,并确保详细说明。然后将其标记为正确,是的,您可以这样做,您应该添加您的解决方案作为答案,并确保详细说明。然后将其标记为正确,是的,您可以这样做,您应该这样做
$(function() {
    $('#file-to-upload').bind('change', function(event) {
        $('#image-upload-form').iframePostForm({
            post : function() {
                $("#progress-indicator").show();
            },
            complete : function (response) {
                $("#progress-indicator").hide();
                try {
                    json = $.parseJSON(response);
                } catch (e) {}
            }
        });
   });
});
$(function() {
    $('#file-to-upload').bind('change', function(event) {
        $('#image-upload-form').submit().iframePostForm({
            post : function() {
                $("#progress-indicator").show();
            },
            complete : function (response) {
               $("#progress-indicator").hide();
               try {
                   json = $.parseJSON(response);                    
               } catch (e) {}
            }
        });
    });
});