2015-11-02 120 views
-2

這是一個記事本++中的聊天應用程序代碼。我的輸入鍵不起作用,因爲它總是給出一個新的行。我試圖找到問題,但無法糾正, 如果有人能夠發現並糾正問題,這將有很大的幫助嗎?如何更改輸入密鑰的默認行爲?

? 
<?php 
    session_start(); 
?> 

<!DOCTYPE html> 
<html> 
<head> 
    <link href="../Style/Style.css" type="text/css" rel="stylesheet"/> 
    <script type="text/javascript" src="..Js/jquery.js"></script> 
    <title>Chat Application Home</title> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 

      $("#ChatText").keyup(function(e){ 
       //When We Press Enter Do 
       if(e.keyCode ==13){ 
        var ChatText = $("#ChatText").val(); 
        $.ajax({ 
         type:'POST', 
         url:'InsertMessage.php', 
         data:{ChatText:ChatText}, 
         success:function(){ 

          $("#ChatText").val(""); 
         } 

        }); 
       } 
      }); 


    }); 

    </script> 

    </head> 
    <body> 
    <h2>Welcome <span style="color:green"><?php echo $_SESSION['UserName'];?></span></h2> 
    </br></br> 

    <div id="ChatBig"> 

    <div id="ChatMesseges"> 

    </div> 

    <textarea id="ChatText" name="ChatText"></textarea> 

    </div> 

    </body> 
</html> 
+0

你沒有壓制回車鍵的正常行爲......你攔截它,但然後讓它像平常一樣繼續。 –

回答

0

您應該防止按鍵時的默認行爲。使用e.preventDefault()return來做到這一點,然後運行你的代碼。

0

您必須取消enterkeypress事件的默認行爲。將此代碼添加到您的代碼中:

$("#ChatText").keypress(function(e) { 
    if(e.keyCode ==13){ 
     return false; 
    } 
} 

請注意,這是一個不同的事件;請將keyup按原樣處理,或者更改您的代碼以響應keypress事件而不是keyup事件,並在該處添加return false;。這兩種方式都很好。