2017-08-25 58 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

請檢查編輯 - 阿卜杜勒迪亞茲 –

相關問題