用JS判斷ckeditor3.6版本編輯器內容為空白的方法。

來源:互聯網
上載者:User

因為編者我還是一個初學入門者,無論是JS還是PHP,都是懂了點皮毛。今天在研究ckeditor編輯器的時候遇到了一些問題,雖然這隻是我的個人問題,但覺得可以分享給其他人,或許也有像我這樣的初學者也會遇到這問題。


好了,現在談一下這問題。

在接觸ckeditor編輯器之前,編者製作的表單都是用的<textarea>標籤,比如製作的留言本、新聞發布器等,但由於<textarea>的輸入框輸入的內容格式單一,基本沒什麼擴充功能,所以使用了ckeditor編輯器。在這裡先聲明,編者使用的是ckeditor3.6版本的。


在<textarea>的時候,我們用js判斷輸入框內容是否為空白一般都是這麼寫的:

<script>    function check_form(){        if(myform.content.value==""){            alert("請輸入內容!");            return false;        }    }</script>

下面是表單代碼:

<form action="" name="myform" method="post">    <textarea name="content" rows=10 cols=40>預設內容</textarea>    <input type="submit" name="sub"  check_form()"></form>

上面的兩端程式碼群組合是可以進行輸入框內容驗證的。


那麼在使用了ckeditor3.6之後,如果js裡繼續使用myform.content.value擷取輸入框裡的內容的話是沒有效果的了。後來網上瞭解到,在ckeditor3.6版本裡,要擷取到編輯器裡的內容,需要使用CKEDITOR.instances.content_name.getData(),其中content_name換成你自己的name屬性值,在3.0及之前版本使用CKEDITOR.instancesgetData()。而且擷取到的編輯器裡的內容是帶有html標籤的,這要注意了。


譬如編者最後改版的js代碼如下:

<script>function check_form(){    var content= CKEDITOR.instances.content.getData();    if(content==""||content.match("請在這裡輸入新聞內容!")){        xw.content.focus();        alert("請填寫新聞內容!");        return false;    }}</script>

JS代碼可見,用CKEDITOR.instances.content_name.getData()擷取到編輯器裡的內容到變數content裡,再在if條件裡判斷content內容是否為空白,也判斷是否包含下面我設定的預設值“請在這裡輸入新聞內容!”,一旦判斷有其中之一就認為沒有使用者填寫新聞內容。這裡之所以用content.match()方法判斷而不用content=="請在這裡輸入新聞內容!"是因為擷取到的編輯器裡的內容帶有html標籤,所以嘛,就不解釋了。


再看錶單代碼如下結合PHP):

<form name="myform" action="" method="post">    //顯示編輯器之前要建立CKEditor對象,這裡就不寫了)    <?php $ed->editor("content","請在這裡輸入新聞內容!"); ?>    <input type="submit" name="sub"  check_form()"></form>

表單代碼中可見,顯示的編輯器的name屬性值是content,預設顯示的文字是“請在這裡輸入新聞內容!”


這樣就完成了對ckeditor編輯器內容是否為空白的檢測了。

當然可能這篇博文還有很多不完善的地方,希望各位高手們指出,以便日後完善一下。

本文出自 “Veitor的技術博” 部落格,請務必保留此出處http://5655237.blog.51cto.com/5645237/1252774

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.