我正在使用兩個 jquery/ajax 函式來提交資料,對于我正在使用的具有單個表單和檔案上傳的頁面var formData = new FormData(this);。
但是我在某些頁面中有多個表單,所以我必須將功能更改為var form = $(this).closest('form');.
我的問題是:如何closest();在同一個函式中使用帶有 formData 的函式?
然后我可以對所有頁面使用相同的功能,而不是使用多個功能。
這是我的功能可以與多種形式一起使用,但不發布檔案。
$(document).ready(function() {
$('.submit').on("click", function(e) {
e.preventDefault();
var form = $(this).closest('form');
$.ajax({
type:'POST',
url:'../page',
data:form.serialize(),
success:function(vardata){
var json = JSON.parse(vardata);
if(json.status == 101){
alert(json.msg);
window.location.replace("/my-account/");
} else {
alert(json.msg);
console.log(json.msg);
}
}
});
});
});
并與 formData 一起發送檔案,但不能與同一頁面中的多個表單一起使用。
$("#ProForm").submit(function(e){
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url:'page.php',
type: 'POST',
data: formData,
cache: false,
contentType: false,
processData: false,
success: function(data) {
var json = JSON.parse(data);
if(json.status == 101){
alert(json.msg);
window.location.replace("/my-account/");
} else {
alert(json.msg);
console.log(json.msg);
}
}
});
});
我試過這個但沒有FormData(this).closest();用append();
uj5u.com熱心網友回復:
jQuery 物件是一個類似陣列的物件,其中 DOM 節點是值。因此,如果您有一個帶有一次性$node[0].
所以我認為你想要:
var form = $(this).closest('form');
var formData = new FormData(form[0]);
您還可以使用陣列解構:
var [form] = $(this).closest('form');
var formData = new FormData(form);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/483391.html
