通过Ajax获取的页面无法使用输入类型="文件"标签?

时间:2017-04-29 04:09:23

标签: javascript jquery ajax forms

我通过Ajax获取表单页面。 以下是一种代码形式:

enter code here
<form  method="post" enctype="multipart/form-data" class="form-horizontal">
    <div class="form-group" style="margin-left:0px;">
        <label for="file">注:选择头像文件尽量小于2M</label>
        <input id="headPortraitFile" type="file" name="portrait"> 
    </div>
    <button id="headPortraitSubmit" type="button" class="btn-sm btn-primary">上传头像</button>
</form>

但是输入类型的形式=&#34;文件&#34;在浏览器中无法直接选择文件,更不用说提交的文件了。我不知道是什么原因?这两天还没有解决,对于一个伟大的上帝!!!!!!

这是Ajax代码: 我得到了表格页面:

$(Document).on("click", '#headPortrait', function() {
    $.get("/headPortrait", function(data) {
        $(".bodyPart").children().remove();
        $(".bodyPart").html(data);
    })
})

2.然后我发布表格:

$(Document).on("click", '#headPortraitSubmit', function() {
    var formData = new FormData();
    formData.append("portrait", $('#headPortraitFile').get(0).files[0])
    $.ajax({ 
        url : "/headPortraitSubmit", 
        type : 'POST', 
        data : formData, 
        processData : false, 
        contentType : false,
        beforeSend:function(){
            console.log("正在进行,请稍候");
        },
        success : function(data) { 
            if (data = "success") {
                $(".bodyPart").children().remove();
                $(".bodyPart").load('/coding');
            }
        }, 
    });
})

1 个答案:

答案 0 :(得分:0)

for属性值应与id的{​​{1}}匹配,如果预期结果是<input type="file">元素在change元素被调用时<input type="file">单击元素。在<label>的{​​{1}}属性上替换"submit" "button"

type是一个功能,而不是<button> Document。将html替换为传递给document的参数documentDocument

jQuery()中的

$()条件应使用ifsuccess来比较=====的值,而不是data } {} "success"标识符。

"success"

&#13;
&#13;
data
&#13;
$(document).on(/* event, selector, eventHandler */)
&#13;
$(document).on("click", '#headPortraitSubmit', function() {
    var formData = new FormData();
    formData.append("portrait", $('#headPortraitFile').get(0).files[0]);
    console.log(formData.get("portrait"));
    /*
    $.ajax({ 
        url : "/headPortraitSubmit", 
        type : 'POST', 
        data : formData, 
        processData : false, 
        contentType : false,
        beforeSend:function(){
            console.log("正在进行,请稍候");
        },
        success : function(data) { 
            if (data === "success") {
                $(".bodyPart").children().remove();
                $(".bodyPart").load('/coding');
            }
        }, 
    });
    */
});

document.querySelector("form")
.onsubmit = function(event) {
  event.preventDefault();
}

document.querySelector("input[id=headPortraitFile]")
.onchange = function(event) {
  console.log(this.files[0])
}
&#13;
&#13;
&#13;