summernote 代码文本中带有“&”字符的表单序列化

Form serialization with '&' character in summernote code text

我有一个带有一些 summernote div 的表格,我正在尝试 post 通过 ajax 和表格序列化他们的文本。

summernote div 是这样的:

<div class="description" id='a_unique_id'></div>

summernotes 初始化如下:

$('.description').each(function () {

    $('#' + this.id).summernote({
        toolbar: [
            ['style', ['bold', 'italic', 'underline', 'clear']],
            ['fontsize', ['fontsize']],
            ['para', ['ul', 'ol', 'paragraph']]
        ],
        disableDragAndDrop: true
    });
});

而序列化代码是这样的:

var descriptions = '';

$('.description').each(function () {
    var id = this.id;
    var code = $('#' + id).code();
    if(code != '<p><br></p>'){
        descriptions += '&' + id + '=' + code;
    }
});

var data = $('#ajax_form').serialize() + descriptions;

现在假设其中一个 summernotes 代码类似于 "some text &another text"。我的意思是,文本上有一个“&”字符。

序列化无效!

我该如何处理这种情况?

@mhodges回答后,我将序列化代码更改为:

descriptions += '&' + id + '=' + encodeURIComponent(code)

现在它正在按照我希望的方式工作。

尝试使用 encodeURIComponent(code)

descriptions += '&' + id + '=' + encodeURIComponent(code);

然后您只需要在服务器端脚本中对其进行解码

encodeURIComponent docs

这样就可以了。

descriptions += '&' + id + '=' + encodeURIComponent($('.description').summernote('code'));