我在前端使用带有Summernote的Codeiginter - 现在在一个表单中,当某些字段为空时,同一页面加载验证检查。我使用以下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 } ?>
});
现在的问题是,当验证失败时,上面的代码使用RAW HTML填充Summernote编辑器,而不是格式化HTML,因为它应该
这是我的第一篇文章Pellentesque libero tortor的一个例子, tincidunt et,tincidunt eget,semper nec,quam。 Lorem ipsum dolor坐 amet,consectetuer adipiscing elit。 Pellentesque的商品因素而异。 Aenean imperdiet。 Cras sagittis。
Nam at 在tellus interdum sagittis中的tortor。 Nullam nulla eros,ultricies坐 amet,nonummy id,imperdiet feugiat,pede。 Etiam ut purus mattis mauris sodales aliquam。 Curabitur blandit mollis lacus。 Phasellus 的Tempus。
任何想法为什么会这样?我试过.val和.html - 但它们不起作用。请帮助。
答案 0 :(得分:1)
好。经过两天的紧张努力 - 我发现了原因 - 这是愚蠢的。 Codeigniter表单验证使用转义字符对所有格式化数据进行编码,并将它们转换为原始HTML。要解决此问题,请删除form_validation.php中的内容验证或表单验证规则。然后你可以使用$(&#39;#summernote&#39;)代码输出(输入 - &gt;帖子(&#39;内容&#39;);?&gt;);
感谢大家的帮助。
答案 1 :(得分:1)
关于你自己的答案,我还有一些事情要说,因为这是一个普遍的问题。坦率地说,它不是那么愚蠢,现代框架就是这样做的,如果你不这样做,它们就会逃脱html字符。
在你的情况下( Codeigniter )告诉不要逃避是在验证部分。
在我的情况下( .net mvc razor views ),您可以这样做:
$('#summernote').code("@Html.Raw("<div>your html string</div>")");
答案 2 :(得分: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 } ?>
});
答案 3 :(得分: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 } ?>
});