如何更改enter键的默认行为?

时间:2015-11-02 21:49:27

标签: php jquery

这是记事本++中的聊天应用程序代码。我的回车键不起作用,因为它总是给出一个新行。我试图找到问题,但无法纠正它, 如果有人能够发现并纠正这个问题,那将会有很大帮助吗?

 ?
<?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>

2 个答案:

答案 0 :(得分:0)

您应该在按键时阻止默认行为。使用e.preventDefault()return执行此操作,然后运行您的代码。

答案 1 :(得分:0)

您必须取消enter keypress事件的默认行为。将其添加到您的代码中:

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

请注意,这是一个不同的事件;按原样保留keyup处理,或者更改代码以响应keypress事件而不是keyup事件,并在其中添加return false;。两种方式都很好。