2017-08-25 60 views
0

我有这样的代码和它的作用是,它附加任何用户将输入到客舱。它完成这项工作,但它后面还会附加空值。我该如何阻止?为什么输入继续追加?

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; 
    } 
    }); 
+0

'$( “#userSubmitTxt”)。点击(...)'结合*额外*单击处理程序,该元素每次用户键入,然后每次点击运行*所有*处理程序。 – nnnnnn

+0

我用了'。一(“点击”,函数(){})',但它仍然发生 –

+0

不嵌套的事件处理程序。绑定'.click()'(不要在* keyup处理函数外部使用'.one()')*。 – nnnnnn

回答

0

发生这种情况是因为您的侦听器正在侦听每个更改。包括当您将消息发送到 “”

在你的if语句请加

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

似乎没有工作。谢谢,但Mekuanent –

+0

哦对不起,我打算把||而不是&& –

+0

请检查编辑 - 阿卜杜勒迪亚兹 –

相关问题