js获取ckeditor的值为空判断时,里面的样式标签没有去掉,上网查了一下,找到原因,记录下来。
转自http://zhang1987lian.blog.163.com/blog/static/96767792010423111036357/
今天在做一个留言版块的时候,输入内容用的是ckeditor在线编辑器,原想更别的input一样,用js来判断他们的值是否为空的时候,发现
“
<div class="right message">
<div id="DTitle"><img src="images/message_bg.png" /></div><br />
<div id="icompany" runat="server">
<ul>
<li><b>主题:</b><i><asp:TextBox ID="TxtSubject" runat="server"></asp:TextBox><font color="#ff0000">*</font></i></li>
<li><b>姓名:</b><i><asp:TextBox ID="TxtName" runat="server"></asp:TextBox></i></li>
<li><b>E-mail:</b><i><asp:TextBox ID="TxtMail" runat="server"></asp:TextBox></i></li>
<li><b>来自:</b><i><asp:TextBox ID="TxtFrom" runat="server"></asp:TextBox>例如:江苏苏州</i></li>
<li><b>电话:</b><i><asp:TextBox ID="TxtTel" runat="server"></asp:TextBox></i></li>
<li>
<asp:HiddenField ID="HdIp" runat="server" />
<b>反馈信息:</b><i><asp:TextBox ID="TxtContent" runat="server" TextMode="MultiLine"></asp:TextBox><font color="#ff0000">*</font></i><br /><asp:ImageButton
ID="ImgSubmit" CssClass="submit" runat="server" OnClientClick="return oncheck();" ImageUrl="images/submit.gif" OnClick="ImgSubmit_Click" /></li>
</ul>
<script type="text/javascript">
var editor=CKEDITOR.replace("TxtContent",{language:'zh-cn',width:500, height:180, toolbar:[['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],/**'/'此符号为换行**/['Cut','Copy','Paste'],['TextColor','BGColor'],]});
</script>
</div>
</div>
”
用
“
f($("#TxtSubject")[0].value=="")
{
alert("请输入主题");
$("#TxtSubject")[0].focus();
return false;
}
”
用这样的命令可以获取主题输入框的值是成功的,但是如果还是用同样的方法来获取TxtContent的值的话,是获取不到的,获取的值总是为空!不论您往里面填入什么,都是空的,因为TxtContent的值,已经用ckeditor来代替,所以用js获取不到,但是在服务器端确实可以获取得到的,也就是"this.TxtContent.Text.Tostring()"是能获取到ckeditor里面的值的!
但是不能在客户端进行判断!所以,简单“bd”了一下,
“在页面内注册编辑器,并赋值给一个变量,以便引用。
var editor=CKEDITOR.replace( 'editor1' );
然后使用如下语句就可以取得编辑器内的值。
editor.document.getBody().getText(); //取得纯文本
editor.document.getBody().getHtml(); //取得html文本
”
以上是别人的回复!于是这样就可以了,所以,现在我上面的代码中再加上
“
else if(editor.document.getBody().getText()==""){
alert("请输入留言内容");
return false;
}
”