ajax没有提交表格

时间:2013-06-09 22:09:19

标签: javascript ajax file-upload

我正在处理文件共享服务。但是我遇到了一个问题。由于某种原因,文件被选中,但AJAX没有读取此选项,也没有自动上传文件。因此,此响应不会被处理回并插入到页面上的DIV中。

HTML + FORM

        <div class="file-input-wrapper"> 
          <form method="post" enctype="multipart/form-data" action="upload.xml">
          <button class="btn-file-input" id="bt">Select a File to Share</button>
          <input type="file" name="file" multiple />
          </form>
          <br/><br/>
          <div id="response"></div>
         </div>

JAVASCRIPT

(function () {
    var input = document.getElementById("file"),
        formdata = false;

    function showUploadedItem(source) {
        document.getElementById("image-list").innerHTML = "<li><img src='" + source + "' /></li>";
    }

    if (window.FormData) {
       formdata = new FormData();
       document.getElementById("bt").style.display = "inline";
    }

    input.addEventListener("change", function (evt) {
        document.getElementById("response").innerHTML = "<div class='uploading'></div>"
        var i = 0,
            len = this.files.length,
            img, reader, file;
        formdata = new FormData();
        //for ( ; i < len; i++ ) {
        file = this.files[i];

        if (file.type.match(/file.*/)) {
            if (window.FileReader) {
                reader = new FileReader();
                reader.onloadend = function (e) {
                    var source = e.target.result;
                    document.getElementById("image-list").innerHTML = "<li><img src='" + source + "' /></li>";
                };
                reader.readAsDataURL(file);
            }
            if (formdata) {
                formdata.append("file[]", file);
            }
        }
        //}

        if (formdata) {
            $.ajax({
                    url: "upload.xml",
                    type: "POST",
                    data: formdata,
                    processData: false,
                    contentType: false,
                    success: function (res) {
                        document.getElementById("response").innerHTML = res;
                    }
                });
        }
    }, false);
})();

代码最初工作但是当我尝试设置文件输入文件的样式时,这就是当地狱破裂并且事情破裂时,此时我不确定我做错了什么。

您还可以通过以下网址查看现场代码:cyogen.com

1 个答案:

答案 0 :(得分:2)

这是因为你的id是“bt”而不是“btn”。在这一行:

document.getElementById("btn").style.display = "none";