我使用CKEditor
文本区域,它涉及到形成区域。
我需要使用serializeArray()
jQuery函数获取有关提交的表单数据。
首次提交时,它返回值“”。
在第二次提交后,它返回正确的值。
我注意到textarea值不是第一次更新,而是第二次更新。
$("form").submit(function(e){
e.preventDefault();
// not sure if you wanted this, but I thought I'd add it.
// get an associative array of just the values.
var values = $(this).serializeArray();
var datas = {};
values.forEach(element => {
datas[element['name']] = element['value'].replace(/<[^>]+>/g, '');
});
});
答案 0 :(得分:0)
Ckeditor是jQuery库,因此您应该使用以下代码获取其值
var desc = CKEDITOR.instances['DSC'].getData();
或者,如果您的实例已经定义,则可以获取以下值。
var editor = CKEDITOR.replace('editor');
alert(editor.getData());
在https://codepen.io/rohitmittal/pen/jdYXGe上查看工作示例
您应该在表单序列化而不是ckeditor中获取所有表单字段值。如果它第二次获得价值,我认为它将显示最近更新的价值。如果您第二次更新该值,它将仍然显示最近未更新的最后一个值。因此,我更喜欢使用上述语法来获取ckeditor值并将其添加到序列化数组中。
答案 1 :(得分:0)
请参阅:https://ckeditor.com/docs/ckeditor4/latest/guide/dev_jquery.html和https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR_Adapters_jQuery.html#method-val。
CKEditor具有jQuery Adapter,它允许您同时使用编辑器内部API和jQuery方法。要从编辑器获取HTML,请使用:
$( '#editor1' ).val( )