1 回答

TA貢獻1788條經(jīng)驗 獲得超4個贊
值得問你的JS...
您正在執(zhí)行以下操作:
data: $(this).serialize(),
這將不包括文件附件。您需要使用 JS FormData 類并關(guān)閉一些 jQuery 功能。
首先,為文件輸入一個id,以便您可以更輕松地定位它(您的標(biāo)簽也應(yīng)該定位此id,而不是屬性):labelname
<input name="attachments[]" id="attachments" type="file" multiple="multiple">
然后更改 ajax 代碼以將表單數(shù)據(jù)放入對象中,然后將文件元素添加到其中:FormData
var fd = new FormData('contact-form');
var files = $("#attachments").get(0).files;
for (var i = 0; i < files.length; i++) {
fd.append("attachments", files[i]);
}
$.ajax({
type: "POST",
url: url,
data: fd,
processData: false,
contentType: false,
success: function (data) {
var messageAlert = 'alert-' + data.type;
var messageText = data.message;
var alertBox = '<div class="alert ' + messageAlert + ' alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' + messageText + '</div>';
if (messageAlert && messageText) {
$('#contact-form').find('.messages').html(alertBox);
$('#contact-form')[0].reset();
grecaptcha.reset();
}
},
error: function (data) {
//this is going to happen when you send something different from a 200 OK HTTP
alert('Ooops, something happened: ' + data.message);
}
});
注意:此方法在版本 10 之前的 Internet Explorer 中不起作用。
- 1 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報