2013-03-23 32 views
0

好,所以這是我正在與我一起工作。這是受到影響的textarea的代碼:如何使用ckeditor提交textarea數據與Ajax?

<div class="chat"> 
    <div class="messages"></div> 
    <textarea class="entry" name="entry" placeholder="Welcome to the Chat. Enter your message here!"></textarea> 
    <script type="text/javascript"> 
     editor = CKEDITOR.replace('entry'); 
    </script> 
</div> 

這是調用所有功能的聊天我chat.js文件的代碼:

var chat = {} 

chat.fetchMessages = function() { 
    $.ajax({ 
     url: 'ajaxchat.php', 
     type: 'post', 
     data: { 
      method: 'fetch' 
     }, 
     success: function (data) { 
      $('.chat .messages').html(data); 
     } 
    }); 
} 

chat.throwMessage = function (message) { 
    if ($.trim(message).length != 0) { 
     $.ajax({ 
      url: 'ajaxchat.php', 
      type: 'post', 
      data: { 
       method: 'throw', 
       message: message 
      }, 
      success: function (data) { 
       chat.fetchMessages(); 
       chat.entry.val(''); 
      } 
     }); 
    } 
} 

chat.entry = $('.chat .entry'); 
chat.entry.bind('keydown', function (e) { 
    if (e.keyCode === 13 && e.shiftKey === false) { 
     chat.throwMessage($(this).val()); 
     e.preventDefault(); 
    } 
}); 

chat.interval = setInterval(chat.fetchMessages, 5000) 
chat.fetchMessages(); 

現在所有這些代碼工作但返回鍵沒有被捕獲提交消息。不知道還有什麼我需要做的。 CKeditor將輸入/回車鍵解釋爲一個新段落,我需要它提交消息數據。

+0

的可能重複[使用Javascript拍攝鍵(http://stackoverflow.com/questions/756786/javascript-capture-key) – 2013-03-24 11:29:20

回答

1

如果我正確地理解了這個問題,你的問題就是事件。你不會像CKEditor那樣綁定事件。它不直接使用textarea元素,它有一些魔術技巧並創建一個iframe並擁有自己的事件處理系統。要連接到13個重點事件,像做以下

CKEDITOR.on('instanceReady', function(ev) { 
    var editor = ev.editor; 

    editor.on('key', function(evt) { 
     if (evt.data.keyCode === 13) { 
      // do your enter handling here 
     } 
    } 
} 

與此相關的,所獲得的價值一樣,是一個有些奇怪了。它實際上工作嗎?我會改變,對於更多的CKEditor樣

CKEDITOR.instances.entry.getData(); 
+0

對不起,我忘了澄清這個代碼減去CKeditor的作品。我想通過讓用戶自定義文本來爲我的聊天應用程序添加更多功能,所以我選擇使用ckeditor。我使用了phpacademy的一個教程來編碼,所以我不確定代碼到底在哪裏。所以糾正我,如果我錯了。 我應該添加你已經發布的代碼在相同的腳本標籤中,用ckeditor代替textarea。然後,我應該擺脫chat.js中的chat.entry.bind代碼,並將輸入處理代碼放在editor.on函數中? – user2180841 2013-03-23 02:29:41

+0

沒錯。它工作?那麼請接受anwser – spons 2013-03-26 17:04:38