【www.gdgbn.com--正则表达式】

fckeditor 验证内容是否为空 fckeditor js验证表单
原来的代码代码如下
复制代码 代码如下:

<script language = "网页特效">

</script>




这样是我们写程序中最经常的写法 提交之前进行验证内容是否为空!
使用了编辑器以后 在第一次按提交按钮的时候 总是获取不到编辑器的值 内容已经输入 可是content并没有任何值!需要我们再次点提交按钮 content 才能获取到值!
对于这个问题 好多人都觉得困惑!有写是用js去读取输入域中的html内容!可是这只对全js版本的fckeditor 才有效果 对 jsp教程版本的 并不起作用!对于这样的状态 也只能怪fckeditor开发者了!而代码太多太麻烦 想要修改其核心谈何容易!
本人经过不断的测试 现得到一个方法可以解决次问题!先拿出来大家分享
改写代码如下
复制代码 代码如下:

<script language = "javascript">

</script>




修改成这样的目的是因为编辑器已经监视了onsubmit这个事件 是要在提交以后才把跟新的内容置入隐藏域content 中,原先的来不及置入内容便已经执行了验证事件所以当然取不到及时的内容!

下面一些常用的fck常用操作

//js获取fck的值
function geteditorcontents(){
   var oeditor = fckeditorapi.getinstance("content");
   alert(oeditor.getxhtml(true));
}

//向编辑器插入指定代码
function inserthtmltoeditor(codestr){
   var oeditor = fckeditorapi.getinstance("content");
   if (oeditor.editmode==fck_editmode_wysiwyg){
     oeditor.inserthtml(codestr);
   }else{
     return false;
   }
}

//统计编辑器中内容的字数
function getlength(){
   var oeditor = fckeditorapi.getinstance("content");
   var odom = oeditor.editordocument;
   var ilength ;
   if(document.all){
     ilength = odom.body.innertext.length;
   }else{
     var r = odom.createrange();
     r.selectnodecontents(odom.body);
     ilength = r.tostring().length;
   }
   alert(ilength);
}

//执行指定动作
function executecommand(commandname){
   var oeditor = fckeditorapi.getinstance("content") ;
   oeditor.commands.getcommand(commandname).execute() ;
}

//设置编辑器中内容
function setcontents(codestr){
   var oeditor = fckeditorapi.getinstance("content") ;
   oeditor.sethtml(codestr) ;

本文来源:http://www.gdgbn.com/aspjiaocheng/28747/