2014-03-27 66 views
0

理念后进行的更改:什么是具有实施的CKEditor

我使用的CKEditor发布在我的网站的论坛提问。

问题:

当我输入的post_body textarea的问题,并打造成话题,以下是发生的事情: -

  • 首先,一个警告框弹出说“请键入东西到 正文“(请不要说正文textarea不为空)

  • 然后立刻,我被转到主题。(请注意,发布的内容正在插入数据库表中)

我不希望弹出警告框。我该怎么办?

代码:

<div id="middlePanel"> 
    <table style="background-color:#FFF; border:#069 1px solid; border-top:none;" width="100%" border="0" align="center" cellpadding="12" cellspacing="0"> 
     <tr> 
     <td width="80%" valign="top"> 
      <h2><?php echo $forum_section_title; ?></h2> 
      <div id="breadcrumbs"><a href="forumhome.php">Forum</a>&larr;<a href="sections.php?id=<?php echo $forum_section_id; ?>"><?php echo $forum_section_title; ?></a></div><br /><br /> 
      <h2>Creating New Topic In the <em><?php echo $forum_section_title; ?></em>&nbsp; Forum</h2> 
      <form action="php_parsers/forumpost_system.php" method="post" name="form1" id="form1"> 
      <input name="post_type" type="hidden" value="a" /> 
      Topic Author:<br /><input name="topic_author" type="text" disabled="disabled" maxlength="64" style="width:96%;" value="<?php echo $log_username; ?>" /> 
      <br /><br /> 
      Please type in a title for your topic here:<br /><input name="post_title" type="text" maxlength="64" style="width:96%;" /><br /><br /> 
      Please type in your topic body:<br /> 
      <textarea name="post_body" id="post_body" rows="15" style="width:96%;"></textarea> 
      <script> 
      CKEDITOR.replace('post_body'); 
      </script> 
      <!--<iframe name="richTextField" id="richTextField" style="border:#000000 1px solid; width:700px; height:300px;"></iframe>--> 
      <br /><br /> 
      <input name="" type="submit" value="Create my topic now!" onclick="validateMyForm();"/> 
      <input name="fsid" type="hidden" value="<?php echo $forum_section_id; ?>"/> 
      <input name="fstitle" type="hidden" value="<?php echo $forum_section_title; ?>"/> 
      <input name="uid" type="hidden" value="<?php echo $log_id; ?>"/> 
      <input name="uname" type="hidden" value="<?php echo $log_username; ?>"/> 
      <input name="upass" type="hidden" value="<?php echo $log_password; ?>"/> 
      </form> 
     </td> 
     <td width="20%" valign="top">&nbsp;</td> 
     </tr> 
    </table> 
    </div> 

这些都是JavaScript函数在我的脑海标签

<script> 
function validateMyForm () 
{ 
    var isValid = true; 
    if (document.form1.post_title.value == "") 
    { 
     alert ("Please type in a title for this topic"); 
     isValid = false; 
    } 
    else if (document.form1.post_title.value.length < 10) 
    { 
     alert ("Your title must be at least 10 characters long"); 
     isValid = false; 
    } 
    else if (document.form1.post_body.value == "") 
    { 
     alert ("Please type in your topic body."); 
     isValid = false; 
    } 
    return isValid; 
} 

如果我不使用的CKEditor,然后一切工作正常。但是,如果我使用它,我正面临着上述问题。我认为我必须做出一些我不知道的变化。所以那些使用CKEditor的人请帮助我。

+0

我相信警报是从一些JavaScript,你已经决定(出于某种原因)未向我们展示了未来? – freefaller

+0

我已经更新了qn。请检查一下。 – Gopal1216

回答

0

你不告诉CKEditor更新原始的<textarea>元素。

当您使用CKEditor时,编辑器将使用<textarea>的内容自行填充 - 当您提交表单时,编辑器将自动更新编辑器编辑后的内容<textarea>

你需要做的是在检查该元素的内容之前,强制它尽早更新元素。

所以,你测试前document.form1.post_body.value尝试运行下面的代码位...

CKEDITOR.instances.post_body.updateElement(); 
+0

太棒了!非常感谢你 – Gopal1216

+0

不客气@Gopal--很高兴我能帮忙:-) – freefaller