
js取不到ckeditor textarea值
在使用 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 其它的操作,也有相应的方法,如果遇到问题,也不要忘了用它提供的方法。