2 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊
問(wèn)題是因?yàn)槟_聲明了一個(gè)FormData對(duì)象,但隨后在下一行中立即用字符串覆蓋它。
您需要將append() 所有數(shù)據(jù)添加到 FormData 對(duì)象中。此外,您需要向append()方法提供文件數(shù)據(jù),而不是引用控件的 jQuery 對(duì)象input type="file"。
var form_data = new FormData();
form_data.append('msg_area_cst', msg_area_cst);
form_data.append('num_cst', num_cst);
form_data.append('upload', $('input[name=upload]')[0].files[0]);
話(huà)雖這么說(shuō),如果您從中讀取值的控件包含在元素中,則可以使事情變得更加簡(jiǎn)單form。然后您可以使用submit該表單的事件并將對(duì)其的引用傳遞給 FormData 構(gòu)造函數(shù)。
confirm()另外,您也不會(huì)對(duì)單擊“我假設(shè)您想停止表單提交”的結(jié)果執(zhí)行任何操作Cancel,上面的示例現(xiàn)在使用preventDefault().
最后,使用起來(lái)html == 1很不可靠。首先html是一個(gè)字符串,因此依賴(lài)于整數(shù)的隱式類(lèi)型強(qiáng)制并不理想。此外,如果包含任何空格,返回純文本響應(yīng)可能會(huì)導(dǎo)致問(wèn)題。我強(qiáng)烈建議您更改服務(wù)器端邏輯以返回序列化格式(例如 JSON),并使用布爾值作為“成功”標(biāo)志。
話(huà)雖如此,試試這個(gè):
$('#yourForm').on('submit', function(e) {
if (!confirm("Do you really want to send messages?")) {
e.preventDefault();
}
$('.loading').html(loader).fadeIn();
$.ajax({
url: "../server/CustomMsg.php",
type: "POST",
data: new FormData(this),
success: function(html) {
if (html.trim() === "1") {
$('#register_form').fadeOut('slow');
$('.loading').fadeOut();
$('.message').html('Successfully Sent ! ').fadeIn('slow');
} else
alert('Sorry, unexpected error. Please try again later.');
}
}
});
});

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試這個(gè)ajax代碼
$.ajax({
url: "../server/CustomMsg.php",
type: "POST",
data: form_data,
contentType: false,
cache: false,
processData:false,
async: true,
success: function(html) {
if (html == 1) {
$('#register_form').fadeOut('slow');
$('.loading').fadeOut();
$('.message').html('Successfully Sent ! ').fadeIn('slow');
} else
alert('Sorry, unexpected error. Please try again later.');
}
});
- 2 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報(bào)