1

我正在尝试将 Summernote 与 JSF 一起使用,但我不知道为什么它总是返回空字符串:

<div class="form-group">
                                <label>Conteúdo *</label>
                                <h:inputTextarea value="#{cursoMB.paginaConteudo.conteudo}"
                                    id="conteudo" required="true"
                                    requiredMessage="O conteúdo é obrigatório"
                                    styleClass="form-control summernote">
                                </h:inputTextarea>
                            </div>

在我的 JS 文件中:

$(document).ready(function() {
    initSummerNote();
    jsf.ajax.addOnEvent(initSummerNoteAjax);
});

function initSummerNoteAjax(data) {
    if (data.status === 'success') {
        jQuery('.summernote').summernote({
            height : 300, // set editor height

            minHeight : null, // set minimum height of editor
            maxHeight : null, // set maximum height of editor

            focus : false
        // set focus to editable area after initializing summernote
        });
    }
}

当模态被调用时,会显示summernote,但是当我保存textarea的内容时是空的。

4

2 回答 2

0

那是因为summernote插件没有将编辑的文本存储在textarea中以获取您必须调用的编辑文本 jQuery('.summernote').code()

我建议您在调用以存储值的按钮中添加一个 javascript 处理程序以获取文本并使用该 jsf 添加到 textarea 将字符串存储在 paginaConteudo.conteudo 属性中

function beforeSubmit() {
    jQuery('.summernote').text(jQuery('.summernote').code());
}

另外我建议您在重新创建 ajax 调用之前销毁小部件

jQuery('.summernote').destroy().summernote({..........

在v0.7.0 之后使用 summernote的人注意:您必须.summernote('code')现在使用.summernote('destroy')

在 v0.7.0 之后,直接 jquery 方法、destroy 和 code 被删除,以避免与其他 jquery 库冲突。您可以使用 summernote api 调用此方法。

另请参阅http://summernote.org/getting-started/#get-amp-set-code

于 2015-03-22T17:48:48.133 回答
0

对于您所有使用的summernote textarea,您必须创建一个循环并将真实值设置为真实textarea。

    function beforeSubmit()
    {
     $('.summernote').each(function(v){
         $(this).val($(this).code());
      });
    }
于 2017-01-26T11:20:01.623 回答