Summernote - 在验证时以原始HTML形式显示的文本。

问题描述 投票:2回答:4

我正在使用Codeiginter与Summernote在前端 - 现在在一个表单中,当一些字段为空时,同一页面加载时进行验证检查。我使用的是下面的JS和CI代码。

 $(window).load(function(){
        <?php if(isset($article['text']))
         {
         ?>
        $('#summernote').code('<?php echo $article['text'];  ?>');
        <?php } else { ?>

        $('#summernote').code('<?php echo $_POST['contents'];  ?>').text();

        <?php } ?>
    });

现在的问题是,当验证失败时,上面的代码在Summernote编辑器中填充的是RAW格式的HTML,而不是应有的格式化HTML。

这是我第一篇文章的一个例子 Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam。Lorem ipsum dolor sit amet, consectetuer adipiscing elit。Pellentesque commodo eros a enim。 Aenean imperdiet. Cras sagittis. Nam at tortor in tellus interdum sagittis。Nullam nulla eros, ultricies sit amet, nonummy id, imperdiet feugiat, pede. Etiam ut purus mattis mauris sodales aliquam. Curabitur blandit mollis lacus。Phasellus tempus.

任何想法,为什么是这样?我已经尝试了.val和.html - 但他们不工作。请帮助我。

javascript php jquery html codeigniter-2
4个回答
2
投票

恕我直言,对于你自己的回答,我也有一些话要说,因为这是一个通用的问题。坦率地说,这并不愚蠢,现代框架都是这样做的,如果你不告诉他们这样做,他们会转义html字符。

在你的例子中(Codeigniter)告诉不要转义是在验证部分。

在我的例子中(.net mvc剃须刀观点)你可以做。

$('#summernote').code("@Html.Raw("<div>your html string</div>")");

1
投票

好的 经过两天的紧张努力--我找到了原因--这是愚蠢的。Codeigniter的表单验证将所有格式化的数据用转义字符编码,并将其转换为原始HTML。要解决这个问题,请在你的form_validation.php或你的表单验证规则中删除对内容的验证。然后你可以使用

 $('#summernote').code(<?php echo $this->input->post('contents');?>);

不过谢谢大家的帮助。


0
投票

用html更改代码。

$(window).load(function(){
    <?php if(isset($article['text']))
     {
     ?>
    $('#summernote').html('<?php echo $article['text'];  ?>');
    <?php } else { ?>

    $('#summernote').html('<?php echo $_POST['contents'];  ?>');

    <?php } ?>
});

0
投票

你可以用下面的代码

$(window).load(function(){

    // set content 
    <?php if(isset($article['text'])) { ?>
    $('#summernote').html('<?php echo $article['text'];  ?>');
    <?php } else { ?>
    $('#summernote').html('<?php echo $_POST['contents'];  ?>');
    <?php } ?>

    // create editor 
    $("#summernote").summernote();
});

 $(window).load(function(){
    // create editor 
    $('#summernote').summernote();

    // set content 
    <?php if(isset($article['text'])) { ?>
    $('#summernote').code('<?php echo $article['text'];  ?>');
    <?php } else { ?>
    $('#summernote').code('<?php echo $_POST['contents'];  ?>');
    <?php } ?>
});
© www.soinside.com 2019 - 2024. All rights reserved.