我有一个Web应用程序,在该应用程序中,我弹出了一个创建电子邮件窗口,用户可以在其中填写诸如主题,正文等电子邮件详细信息。提交表单后,我希望该窗口关闭。 我使用jquery和ajax代码使它工作:
$('form').on('submit', function (event) {
event.preventDefault();
var BoldText = document.getElementById("DivDescription").innerHTML;
SendMessageurl = '@Url.Action("CreateMail", "Communication")';
$(".overlay").show();
var mysave = $('#DivDescription').html();
var des = $('#Description').text(mysave);
var formdata = $("#form").serialize();
$.ajax({
url: SendMessageurl,
type: "POST",
data: formdata,
success: function (result) {
setTimeout(function () {
self.close();
},2000);
}
});
});
2秒后,窗口将关闭。 现在,我想添加带有电子邮件的附件。以下代码可以做到这一点,但不会关闭窗口:
$('form').on('submit', function (event) {
event.preventDefault();
var BoldText = document.getElementById("DivDescription").innerHTML;
SendMessageurl = '@Url.Action("CreateMail", "Communication")';
$(".overlay").show();
var mysave = $('#DivDescription').html();
var des = $('#Description').text(mysave);
var formdata = new FormData(this);
var totalFiles = document.getElementById("inputUpload").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("inputUpload").files[i];
formdata.append("inputUpload", file);
};
$.ajax({
url: SendMessageurl,
type: "POST",
data: formdata,
dataType: 'json',
contentType: false,
processData: false,
success: function (result) {
setTimeout(function () {
self.close();
},2000);
}
});
});
调试后,我发现提交表单后它不会进入成功框,不知道为什么。 这是我的html代码:
<i class="fa fa-icon-paperclip"><input type="file" class="filestyle" id="inputUpload" style="opacity:0;" multiple /></i>
<input class="contact2-form-btn" type="submit" value="Send" id="emailsubmit" style="cursor:pointer" />
请帮助!!!
谢谢。
更新: 我通过将dataType从“ json”更改为“ text”解决了此问题。谢谢