为什么输入会继续追加?

时间:2017-08-25 02:49:49

标签: javascript jquery html input

我有这个代码,它的作用是它附加用户放入聊天框输入的内容。它完成了这项工作,但之后也附加了空值。我该如何阻止它?

function updateChat() {
  $("div#chatmessages").append("<div>" + $("#message").val() + "</div>");
}


  var elem = $('#message');

  // Save current value of element
  elem.data('oldVal', elem.val());

  // Look for changes in the value
  elem.bind("propertychange change click keyup input paste", function(event){
     // If value has changed...
     if (elem.data('oldVal') != elem.val()) {
      // Updated stored value
      elem.data('oldVal', elem.val());
      $("#userSubmitTxt").click(function(){

        console.log($('#message').val());
        $("#chatmessages").append("<div>Me:" + $('#message').val() + "</div>");
        $("#chatmessages").scrollTop($("#chatmessages")[0].scrollHeight);
        if(elem.val().search(/nothing/i) >= 0){
            console.log("Nothing");
            $("#chatmessages").append("<div>Linodo: Well, for starters, have you thought about the SAT?</div>");
        }
        $('#message').val("");

      });
    }
    else {
      return false;
    }
  });

1 个答案:

答案 0 :(得分:0)

这是因为您的侦听器会侦听每个更改。包括将消息设置为“”

在你的if条款中,请添加

if( elem.data('oldVal') != elem.val() || $('#message').val() != "")