2015-11-02 60 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;。这两种方式都很好。