Javascript 调整jQuery函数以发送文件
我们网站上的一个功能为我们的所有表单启动。它使用jquery的serializearray方法,效果非常好 我需要添加一个带有文件输入的表单,而serializearray不处理文件。我对Python和Django并不陌生,但我对Jquery是新手。我很难适应这个功能 由于formData类处理文件,我认为可以将“data:serializedform”更改为“data:new formData(form)” 当我这样做时,Chrome的控制台显示“UncaughtTypeError:非法调用”。Firefox的控制台显示“UncaughtTypeError:‘append’在未实现接口FormData的对象上被调用。” 是否需要将FormData对象转换为其他类型 下面是一个片段: uploadfile.html:Javascript 调整jQuery函数以发送文件,javascript,jquery,django,Javascript,Jquery,Django,我们网站上的一个功能为我们的所有表单启动。它使用jquery的serializearray方法,效果非常好 我需要添加一个带有文件输入的表单,而serializearray不处理文件。我对Python和Django并不陌生,但我对Jquery是新手。我很难适应这个功能 由于formData类处理文件,我认为可以将“data:serializedform”更改为“data:new formData(form)” 当我这样做时,Chrome的控制台显示“UncaughtTypeError:非法调用”
function postAndLoad(form, url, panelDivID, btnName){
var serializedForm = $(form).serializeArray();
return request = $.ajax({
url: url,
dataType : 'html',
cache: 'false',
type : 'POST',
data: serializedForm, //data: new FormData(form) produces an error.
success: function (data) {
console.log("Completed POST");
error: function(data) {
console.log('There was a problem in postAndLoad()');
console.log(data);
}
});
return false;
};
…
<form enctype="multipart/form-data" onsubmit="postAndLoad(this, '{% url 'UploadFile' %}', 'panel_upload'); return false;" method='post'>
{% csrf_token %}
{{ form | crispy}}
<div class="row w-100">
<input class="btn" type='submit' name="form1btn" value="button" />
</div>
</form>
请参阅-您可能只需要将
contentType
和processData
设置为false
。谢谢。对不起,重复的问题。我将提高我的搜索技能。:)
class UploadFile(forms.Form):
uploadFile = forms.FileField(label="Select file to upload")
sampleText = forms.CharField(label="Enter some text")