Javascript text更改summernote div时区域值会更改

Javascript text更改summernote div时区域值会更改,javascript,jquery,html,css,summernote,Javascript,Jquery,Html,Css,Summernote,我已经为summernote设置了一个div来更改从数据库中提取的文本 <div id="summernote" class="form-control"><?php echo $laws['content']; ?></div> $(document).ready(function() { $('#summernote').summernote({ height: 300, }); }); $(文档).ready(函数(){ $

我已经为summernote设置了一个div来更改从数据库中提取的文本

<div id="summernote" class="form-control"><?php echo $laws['content']; ?></div> 

$(document).ready(function() {
   $('#summernote').summernote({
     height: 300,
   });
});

$(文档).ready(函数(){
$('#summernote')。summernote({
身高:300,
});
});
直接在div后面有一个ID为的文本区域

<textarea id="lawsContent"></textarea>

我希望文本区域的内容在我键入summernote div时发生变化。就像我键入此问题时发生的情况一样

使用

我提出了这个解决方案:

$(document).ready(function() {
    $('#summernote').summernote({
      onKeyup: function(e) {
        $("#lawsContent").val($("#summernote").code());
      },
      height: 300,
    });
});
使用以下示例:

<form id="form_id" action="/summernote.php" onsubmit="return postForm()">
    <textarea id="summernote" rows="6" name="textarea_name" ></textarea>
</form>

<script type="text/javascript">
    $(document).ready(function(){
        var postForm = function() {
            var content = $('textarea[name="textarea_name"]').html($('#summernote').code());
        }
    });
</script>

$(文档).ready(函数(){
var postForm=函数(){
var content=$('textarea[name=“textarea_name”]').html($('summernote').code());
}
});

受@user3367639启发,这是一种更通用的方法

$('.summernote').each(function () {
    var $textArea = $(this);

    $textArea.summernote({
        onKeyup: function (e) {
            $textArea.val($(this).code());
            $textArea.change(); //To update any action binded on the control
        }
    });
});
用这种方法:

String.prototype.strip = function()
{
   var tmpDiv = document.createElement("div");
   tmpDiv.innerHTML = this;
   return tmpDiv.textContent || tmpDiv.innerText || "";
}
您可以在JS控制器中执行类似的操作,以获取textarea的文本值

$myTextArea.val().strip(); //Where val() returns the html and strip() returns the text

希望这会有所帮助

我认为处理这件事更好

v0.7.0

$('#summernote').summernote({
  callbacks: {
    onChange: function(contents, $editable) {
      console.log('onChange:', contents, $editable);
    }
  }
});
$(文档).ready(函数(){
$(“#summernote”)。summernote(
{
高度:“10em”,
回调:{
onChange:函数(内容,$editable){
var代码=$(此).summernote(“代码”);
$(“#法律内容”).val(代码);
}
}
}
);
});
#法律内容
{
宽度:100%;
高度:10公分;
}

编辑:
输出:


第一印象就是一切

功能: $(文档).ready(函数(){ $('.summernote')。summernote({ 身高:300, onKeyup:函数(e){ $(“#product_desc_l”).html($(this.code()); } }); });
这对我很管用

$('textarea').summernote({
  callbacks: {
    onChange: function(contents, $editable) {
      console.log('onChange:', contents, $editable);
    }
  }
})


<form>
<textarea name="content" onChange></textarea>
</form>
$('textarea')。summernote({
回调:{
onChange:函数(内容,$editable){
log('onChange:',contents,$editable);
}
}
})

您尝试过什么?SummernoteAPI文档()展示了一种方法。提示:尝试将keyup事件处理程序与
.code()
函数结合使用。您不必自己完成此操作。v0.7.0之后,textarea将自动同步。
.code()
方法对我不起作用-我想它已经改成了
$('summernote').summernote('code')
$('textarea').summernote({
  callbacks: {
    onChange: function(contents, $editable) {
      console.log('onChange:', contents, $editable);
    }
  }
})


<form>
<textarea name="content" onChange></textarea>
</form>