Jquery対Ckeditor値

3766 ワード

Ckeditorの前身はFCKeditorである.悪くないリッチテキストエディタです.
昨日このプラグインを使って、このプラグインはもともとシステムの中ですでに使ったことがあって、コードをコピーするつもりですが、前の退職した友达が書いたコードは、少し問題があることに気づきました.
コードは次のとおりです.
<script type="text/javascript" src="../js/ckeditor/ckeditor.js"></script>

<textarea id="content" name="content">${model.content}</textarea>

<script type="text/javascript">
CKEDITOR.replace(
'content' );
</script>

そしてフォームがそのままバックグラウンドに提出されると、バックグラウンドはnameがcontentの値を取り、バックグラウンドは何の値も取れません.
それからネットで半日探して、やっと使えるものを見つけて、jqueryでCkeditorの値を取りました.
<script type="text/javascript" src="../js/ckeditor/ckeditor.js"></script>

<textarea id="content" name="content">${model.content}</textarea>
<script type="text/javascript">
CKEDITOR.replace(
'content' );
function getContenet(){
return CKEDITOR.instances.content.getData(); // textarea
}
</script>

これにより,getContenet()というメソッドを直接呼び出し,現在のtextareaの値をとることができる.
私たちのシステムはSpringのMVCモードを採用しているので、このフォームを提出するときは、取った値をcontentというtextarea要素に再付与するだけでいいです. 
コードは次のとおりです.
<script type="text/javascript">
var kcontent=getContenet();
   if(kcontent.length==0){
errorMsg(" :"," !");
}else{
$("#content").val(kcontent);
}
</script>
<textarea id="content" name="content">${model.content}</textarea>
<script type="text/javascript">
CKEDITOR.replace(
'content' );
function getContenet(){
return CKEDITOR.instances.content.getData(); // textarea
}
</script>

 
contentという要素に直接値を取るのは、取れません.$(「#content」)このように取り出したのは空で、彼のこのプラグインは内部でこのtextarea要素の上にdivの形式で覆われているはずだと思います.
具体的にはまだ資料を調べて検証しなければならない.
CKEDITOR.instances.content.getData();    //  textarea  

このコードがポイントです.
もちろん、フォーム検証では、小さな修正も必要です.$("#content")が空かどうかを直接判断することはできません.理由はすでに述べてあるので、注意しなければなりません.