javascript - 即使在聊天中发送文本后,文本消息也不会清除

标签 javascript php html ajax

我正在开发一个聊天框,它工作正常,但是当我们输入短信并在消息发送后发送它时,它不会自动清除。即使在发布文本后它仍会保留在那里,我们需要手动清除它。

我尝试更改一些代码但无法解决问题。

我在此使用的代码。

    <div class="row">
        <div class="pull-left">
            <h3><?php echo sprintf($this->lang->line("conv_with"), $user["username"]); ?></h3>
        </div>
    </div>

    <div class="row">
        <div class="main_container clearfix">
            <div class="ibox-content-no-bg">
                <div class="chat-discussion">
                    <?php
                    $last_conv = $last_conv->result_array();
                    $last_conv = array_reverse($last_conv);
                    foreach($last_conv as $message):
                    $activity_thumb = $message["thumb_url"];

                    if($message["thumb_url"] == "" || $message["photostatus"] == 0) {
                        $activity_thumb = base_url() . "images/avatar.png";
                    }
                    ?>

                    <?php
                    if($message["user_id"] == $this->session->userdata("user_id"))
                        $align_message = "left";
                    else
                        $align_message = "right";
                    ?>

                    <div class="chat-message clearfix <?php echo $align_message; ?>" data-id="<?php echo $message["id"]; ?>">
                        <?php
                        if($message["gender"] == 0) {
                            $gender_user_color = "male_color";
                        } else {
                            $gender_user_color = "female_color";
                        }
                        ?>
                        <a class="nailthumb-msg-container" href="<?php echo base_url("user/profile/".$message["user_id"]) ?>"><img width="62" alt="" src="<?php echo $activity_thumb; ?>" class="message-avatar"></a>
                         <div class="message">
                            <a class="message-author <?php echo $gender_user_color; ?>" href="<?php echo base_url("user/profile/".$message["user_id"]) ?>"><?php echo $message["username"] ?></a>
                            <span class="message-date text-muted pm-date" title="<?php echo $message["date"]; ?>Z"></span>

                            <span class="message-content">
                                <?php echo $message["content"]; ?>
                            </span>
                            <span class="message-date-mob text-muted pm-date" title="<?php echo $message["date"]; ?>Z"></span>

                        </div>      
                    </div>
                    <?php
                    endforeach;
                    ?>
                </div>

                <div class="chat-message-form">
                    <div class="form-group">
                        <p class="lead emoji-picker-container">
                        <textarea id="pm-write" class="form-control message-input pm-write-answer-textarea" placeholder="<?php echo $this->lang->line("enter_message_here_placeholder"); ?>" name="message"  data-emojiable="true"></textarea> 
                        </p>
                    </div>
                    <div class="btn-reply-placeholder">
                        <a class="btn btn-primary btn-send-reply" href="#" data-user-id="<?php echo $user["uid"]; ?>" data-conv-id="<?php echo $current_conv->id; ?>"><?php echo $this->lang->line("send_reply_btn"); ?></a>
                    </div>
                </div>
            </div>
        </div>
    </div>

AJAX

$(document).ready(function() {
    $('.nailthumb-msg-container').nailthumb();
    $(".pm-date").timeago();
    $(".message").emoticonize();

    $(".chat-discussion").scrollTop(100000);

    window.setInterval(function(){
        var last_message_id = $(".chat-message:last").attr("data-id");

        // Live refresh
        $.ajax({
            url: base_url + "pm/refresh_conv",
            type: 'POST',
            data: {conv_id : conv_id, last_message_id: last_message_id},
            success: function(data) {

                $.each(data.last_messages, function(i, item) {
                    var message = item;

                    var avatar = "";

                    if(message.thumb_url == null || message.photostatus == 0) {
                        avatar = base_url + "images/avatar.png";
                    } else {
                        avatar = base_url + message.thumb_url;
                    }

                    if(message.gender == 0) {
                        var gender_user_color = "male_color";
                    } else {
                        var gender_user_color = "female_color";
                    }

                    if(message.user_id == user_id) {
                        var msg_dir = "left";
                    } else {
                        var msg_dir = "right";
                    }

                    var block_msg = '<div class="chat-message ' + msg_dir + '" data-id="' + message.mid + '">';
                    block_msg += '<a class="nailthumb-msg-container" href="' + base_url + 'user/profile/' + message.user_id + '"><img width="62" alt="" src="' + avatar + '" class="message-avatar" /></a>';
                    block_msg += '<div class="message">';
                    block_msg += '<a class="message-author ' + gender_user_color + '" href="' + base_url + 'user/profile/' + message.user_id + '">' + message.username + '</a>';
                    block_msg += '<span class="message-date text-muted pm-date" title="' + message.date + 'Z"></span>';
                    block_msg += '<span class="message-content">';
                    block_msg += message.content;
                    block_msg += '</span>';
                    block_msg += '</div>';
                    block_msg += '</div>';


                    $(".chat-message").last().after(block_msg);
                    $('.nailthumb-msg-container').nailthumb();
                    $(".pm-date").timeago();
                    $(".message").emoticonize();

                    $(".chat-discussion").scrollTop(100000);

                });
            }
        });
    }, 2000);

    $(".btn-send-reply").click(function(e) {
        e.preventDefault();

     $(':input[name="pmwrite"]').val(null);


        var conv_id = $(this).attr("data-conv-id");
        var user_id = $(this).attr("data-user-id");
        var content = $(".emoji-wysiwyg-editor").html();

        $(this).html('<i class="fa fa-circle-o-notch fa-spin"></i>');
        $(this).addClass("disabled");

        var that = $(this);


        $.ajax({
            url: base_url + "pm/send_reply",
            type: 'POST',
            data: {conv_id : conv_id, content: content, user_id : user_id},
            success: function(data) {
                var res = data.result;

                if(res == 999) {
                    alert(not_logged_in_str);

                    that.html(send_reply_str);
                    that.removeClass("disabled");
                } else if(res == 998) {
                    alert(write_something_str);

                    that.html(send_reply_str);
                    that.removeClass("disabled");
                } else if(res == 500) {
                    alert(cant_demo_mode_str);

                    that.html(send_reply_str);
                    that.removeClass("disabled");
                } else if(res == 997) {
                    alert(conv_not_exist_str);

                    that.html(send_reply_str);
                    that.removeClass("disabled");
                } else if(res == 996) {
                    alert(user_blocked_you_str);

                    that.html(send_reply_str);
                    that.removeClass("disabled");
                } else {                                        
                    var avatar = "";

                    if(data.user.thumb_url == null || data.user.photostatus == 0) {
                        avatar = base_url + "images/avatar.png";
                    } else {
                        avatar = base_url + data.user.thumb_url;
                    }

                    $(".pm-write-answer-textarea").val("");

                    if(data.user["gender"] == 0) {
                        var gender_user_color = "male_color";
                    } else {
                        var gender_user_color = "female_color";
                    }

                    $('.nailthumb-msg-container').nailthumb();
                    $(".pm-date").timeago();

                    that.html(send_reply_str);
                    that.removeClass("disabled");

                    $(".chat-discussion").scrollTop(100000);

                }
            }
        });
    });

    String.prototype.replaceArray = function(find, replace) {
      var replaceString = this;
      for (var i = 0; i < find.length; i++) {
        replaceString = replaceString.replace(find[i], replace[i]);
      }
      return replaceString;
    };
});

我希望有人发送消息后文本区域会被清除,但实际情况是即使在发送消息后文本仍会保留在文本区域中。

最佳答案

我假设这个 $(".emoji-wysiwyg-editor") 是您内容的元素。因为这是您调用的电话

var content = $(".emoji-wysiwyg-editor").html();

尝试在成功后使用此代码清除此元素,因为您在这里使用的是 jquery。

$(".emoji-wysiwyg-editor").html('');

关于javascript - 即使在聊天中发送文本后,文本消息也不会清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55626232/

相关文章:

php - 带有快速结帐的 x-paypal-authorization header

php mysql 查询带有连字符

javascript - 即使 Ajax 调用未在 Select2 中返回任何结果,也将值保留在输入中

javascript - 手动运行 husky git hook(不使用 git 命令触发它)

php - 如何用PHP显示分层 "NESTED SET"数据?

html - 如何制作可重用的 HTML 导航菜单?

Javascript:如何在单击按钮时显示下一个数组值

javascript - ap-angular2-fullcalendar 和外部 API

javascript - 尽管存在 angular.d.ts 文件,VS2015 版本的 TypeScript 仍出现 "TS2304:Build cannot find angular"错误

javascript - 错误 403 Html 图片获取