按Enter键时用ajax发送数据

我有一个这样的表格:

我想在用户按下回车或点击按钮时发送数据

当用户点击按钮时它会起作用,但当用户在chat_in上按Enter键时它不起作用

这是我的javascript:

 $(document).ready(function () { function SendData() { $.ajax({ url: "save.php", type: "post", data: "msg="+$('#chat_in').val(), dataType: 'json', success: function(){ alert("Sent"); }, error:function(){ alert("failure"); } }); } $('#chat_in').keypress(function(e) { if(e.which == 13) { alert('You pressed enter!'); SendData(); } }); $('#bt').click(function() { SendData(); }); }); 

我怎么解决这个问题 ?

 $("#chat_in").keyup(function(event){ if(event.keyCode == 13){ //call send data function here SendData(); } }); 

试试这个

如果有人有同样的问题,只需删除form并使用button

在这种情况下你的HTML和JavaScript应该是这样的:

     final         

document.ready移出SendData

 function SendData() { $.ajax({ url: "save.php", type: "post", data: "msg="+$('#chat_in').val(), dataType: 'json', success: function(){ alert("Sent"); }, error:function(){ alert("failure"); } }); } $(document).ready(function () { $('#chat_in').keypress(function(e) { if(e.which == 13) { alert('You pressed enter!'); SendData(); } }); $('#bt').click(function() { SendData(); }); }); 

我认为在提交表格时这样做可能会更好。 浏览器会为您完成整个“输入”操作,因此您不必担心它。

id添加到

标记,并从button更改类型以submit

 

给你更新Javascript:

 $('#myForm').submit(function() { SendData(); }); 

这是JSFiddle

请尝试使用keyup函数,因为“keypress”函数在不同的浏览器中表现不同。