按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”函数在不同的浏览器中表现不同。