簡體   English   中英

如何使用ckeditor通過Ajax提交textarea數據?

[英]How can I use ckeditor to submit textarea data with 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將輸入/返回鍵解釋為新段落,我需要它來提交消息數據。

如果我正確理解了問題,那么您的問題是事件。 您不會綁定到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();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM