js取不到ckeditor textarea值

亮术网 2020-06-19 本网原创

在使用 ckeditor 时,通过获取多行文本 textarea 的 id,然后再获取其值,出现一个十分奇怪的问题,第一次怎么也取不到 textarea 的值,第二次却获取得到, 导致限制 textarea 文本字数总是失灵。

 

代码如下(asp.net引用ckeditor):

<script type="text/javascript" src="/ckeditor/ckeditor.js"></script>

<asp:TextBox ID="tbContent" runat="server" class="ckeditor" TextMode="multiLine" Text='<%# Bind("info") %>'></asp:TextBox>

 

浏览器解析后变为:

<textarea name="tbContent" rows="2" cols="20" id="tbContent" class="ckeditor"></textarea>

 

Javascript 获取 textarea 值代码:

function gettextareaValue(obj)
  {
    var ta = document.getElementById(obj);
    return ta.value;
  }

调用:gettextareaValue("tbContent");

就是这个方法,第一次怎么也取不到 textarea 的值,第二次却能获取到。

 

需要用 ckeditor 获取值的方法才能获取到 textarea 的值,代码如下:

function gettextareaData()
  {
    var cke = CKEDITOR.instances.tbContent;
    return cke.getData();
  }

 

直接调用就可以了,不过有一点需要注意,就把 gettextareaData() 方法的两句代码作一句写,如:

CKEDITOR.instances.tbContent.getData();

有时也取不到 textarea 的值,但作为两句写就获取得到。所以,如果遇到一句写取不值的情况,就分开两句写。此外,ckeditor 其它的操作,也有相应的方法,如果遇到问题,也不要忘了用它提供的方法。