Summernote返回空字符串

时间:2015-03-22 17:24:49

标签: jquery jsf jsf-2 summernote

我试图在JSF中使用summernote,但我不知道为什么这总是返回空字符串:

<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的内容时为空。

2 个答案:

答案 0 :(得分:0)

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

我建议你在你调用的按钮中存储值,添加一个javascript处理程序来获取文本并添加到textarea,用jsf存储字符串在 paginaConteudo.conteudo property

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和代码,以避免与其他jquery库发生冲突。您可以使用summernote api调用此方法。

另见http://summernote.org/getting-started/#get-amp-set-code

答案 1 :(得分:0)

对于你所有使用过的summernote textarea,你必须制作一个循环并将真实值设置为真正的textarea。

    function beforeSubmit()
    {
     $('.summernote').each(function(v){
         $(this).val($(this).code());
      });
    }