我不是一般的ajax和javascript的专家所以我不得不问。 我有一个带有编辑器的表格(summernote编辑器)
<div id="summernote">summernote text</div>
然后我通过这个ajax函数发送表单数据:
$( '#form-create-project' ).submit( function( e ) {
$.ajax({
url: 'create_project.php',
type: 'POST',
data: new FormData( this ),
processData: false,
contentType: false
});
e.preventDefault();
});
但我也无法找到通过summernote价值的方法,我已尝试过:
var content = $('textarea[name="content"]').html($('#summernote').code());
但我不知道将它放在上面的js里面。当我尝试在提交时插入表单刷新页面而不是执行ajax,所以我想我把它放在了错误的地方。
有人可以帮助我吗?
答案 0 :(得分:1)
您可以使用formData
将所发送的内容简单地添加到append()
:
formData.append("summernote", $('#summernote').text() );
完整代码如:
var formData = new FormData( this );
formData.append("summernote", $('#summernote').text() );
$.ajax({
url: 'create_project.php',
type: 'POST',
data: formData,
processData: false,
contentType: false
});
希望这有帮助。
答案 1 :(得分:0)
您可以尝试在提交之前转义html代码:
例如:
txtText.summernote({ height: 400, lang: 'es-ES'});
$.fn.htmlEscape = function () {
return this.val().trim()
.replace(/&/g, '&')
.replace(/"/g, '"')
.replace(/'/g, ''')
.replace(/</g, '<')
.replace(/>/g, '>');
},
// I needed the opposite function today, so adding here too:
$.fn.htmlUnescape = function () {
return this.val().trim()
.replace(/"/g, '"')
.replace(/'/g, "'")
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/&/g, '&');
},
function getDataForm() {
var data = new FormData();
if (Files.ImageSelection.getAction() === "choose") {
data.append("ImagePath", ImagePath);
}
else {
var files = Files.ImageSelection.getSelectedFile().get(0).files;
if (files.length > 0) {
data.append("File", files[0]);
}
data.append("ImagePath", "");
}
data.append("Id", SectionId);
data.append("Title", txtTitle.val().trim());
data.append("Text", txtText.htmlEscape());
data.append("TypeId", cboType.val());
return data;
}