При попытке отправить форму в текстовое поле введите прессу с jquery ajax не работает

Я пытаюсь представить форму, используя jquery и ajax, но это не удается. Вот код:

$(document).ready(function () { $('.crazytext').keydown(function (event) { if (event.keyCode == 13) { $.ajax( { url: '/sendchat.php', type: 'POST', data: { 'from': $('#from').val(), 'to': $('#to').val(), 'when': $('#when').val(), 'msg': $('#chatty').val() } }); } }); }); 

Это просто, я хочу отправить форму после ввода и отправить данные sendchat.php без перезагрузки страницы. Это html:

 <form id="send-message-area" method="POST" action="sendchat.php"> <input type="text" name="from" id="from" value="<?php echo $me;?>" hidden> <input type="text" name="to" id="to" value="<?php echo $other1;?>" hidden> <input type="text" name="when" id="when" value="<?php echo $date;?>" hidden> <textarea class="crazytext" name="msg" id="chatty"></textarea> <input type="submit" name="chat" values="chat" class="crazytext2" hidden> </form> 

И при необходимости, php-код для sendchat.php

 $fromuser = $_POST['from']; $touser = $_POST['to']; $when = $_POST['when']; $msg = $_POST['msg']; $seen = 0; $addchat = $db->prepare("INSERT INTO scorp_chats (Fromuser, Touser, Messagetime, Message, Seen) VALUES (:fromuser, :touser, :messagetime, :message, :seen)"); $addchat->execute(array(':fromuser' => $fromuser, ':touser' => $touser, ':messagetime' => $when, ':message' => $msg, ':seen' => $seen)); 

Вот и все, это очень просто, но это не удается. Если я полностью удалю часть ajax, он работает, но я перенаправляюсь на страницу, чего не должно быть.

РЕШЕНИЕ (Спасибо Бармару):

 $(document).ready(function () { $('.crazytext').keydown(function (event) { // your input(textarea) class if (event.keyCode == 13) { event.preventDefault(); $.ajax({ url: 'sendchat.php', // script to process data type: 'POST', data: $("#send-message-area").serialize(), // form ID success: function(result) { $("#result").text(result); } }); } }); }); 

Related of "При попытке отправить форму в текстовое поле введите прессу с jquery ajax не работает"

Вам необходимо предотвратить действие отправки по умолчанию:

 $('.crazytext').keydown(function (event) { if (event.keyCode == 13) { event.preventDefault(); // <---- $.ajax( { url: '/sendchat.php', type: 'POST', data: { 'from': $('#from').val(), 'to': $('#to').val(), 'when': $('#when').val(), 'msg': $('#chatty').val() } }); } }); 

DEMO