【问题标题】:Jquery on select file , submit formJquery 选择文件,提交表单
【发布时间】:2012-02-28 22:58:43
【问题描述】:

我有这个 html 代码

    <form method="post" id="upload_video" enctype="multipart/form-data" action="/Home/Save">        
            <div id="form_box">
                    <input type="text" name="name" id="name" value="" style="color: rgb(0, 0, 0);"><br>
                    <input type="text" name="email" id="email" value="" style="color: rgb(0, 0, 0);"><br>
                    <input type="text" name="mobile" id="mobile" value="Κινητό" style="color: rgb(0, 0, 0);"><br>
                    <input type="checkbox" id="checkbox">
            </div>
            <input type="file" name="file" id="upload_file" style="position:absolute;top:-100px;">
    </form>

    <div id="upload"></div>

我想通过单击#upload div 然后自动allu=y 选择文件,然后当我这样做时提交我的表单。所以我有这个脚本

            $('#upload').click(function () {
                    $('#upload_file').click();
            });

            $("#upload_file").change(function () {
                $('#upload_video').submit();
            });

$('#upload_file').click() 事件适用于所有浏览器,但 $('#upload_file').change() 仅适用于 FF 和 Chrome,但不适用于 IE。 所以我的表单只在 FF 和 Chrome 中提交..

有什么想法吗?

【问题讨论】:

标签: jquery html input


【解决方案1】:

我不确定为什么Kory Hodgson's answer 被标记为答案,因为这在 chrome 或更新版本的 IE 中不起作用。这是一个安全风险,因为可以在未经用户同意的情况下上传文件。

对于那些尝试这样做的人,您有很多选择。上传多个文件有一些非常便宜的选项(uploadify 或 plupload 是我用过的两个。)如果你只需要上传一个文件,那么你可以使用 iframe 来上传图片(谷歌使用 iframe 上传文件,有很多示例。)在 iframe 中,您将希望在“onload”事件上调用 javascript 函数。上传图片后,您可以将一些 json 返回到提供上传状态(成功/失败)的 iframe 窗口。根据您要完成的工作,您可以通过 json 将数据传回,也可以在 json 中传递重定向页面 url。

【讨论】:

    【解决方案2】:

    刚刚发现由于安全原因,在IE中这是不可能的

    【讨论】:

      【解决方案3】:

      来自这个帖子:jQuery change method on input type="file"

      看来您可能必须这样做:

      $("#upload_file").live( 'change', function () {
                      $('#upload_video').submit();
                  });
      

      【讨论】:

        猜你喜欢
        • 2017-01-30
        • 1970-01-01
        • 2011-08-10
        • 2011-07-22
        • 2015-02-22
        • 2011-01-13
        • 1970-01-01
        • 2018-09-02
        • 1970-01-01
        相关资源
        最近更新 更多