2014-09-12 46 views
1

所以我有这样的聊天,
http://codepen.io/anon/pen/Frmez展开DIV当按下Enter关闭

$(function() { 
    $('.textarea-chat').on('keyup', function(e) { 
     if (e.which == 13 && ! e.shiftKey) { 
      $(this.form).submit() 
     return false; 
     } 
}); 
}); 

更新代码^

但一个问题是,如果你输入文本送走到聊天并回车,聊天窗口关闭时,它应该保持开放,但我无法弄清楚如何

+1

你提交一个表单,它刷新整个页面。你需要使用ajax – Banana 2014-09-12 11:39:18

+0

我怎么能用ajax实现,所以当我按下输入提交表单?我更新了表格提交代码 – Heinzer 2014-09-12 11:43:12

+0

这就是事情,你不提交任何表格。您正在创建托管的http请求并提取您需要的信息,然后添加到聊天窗口中。提交表单将始终刷新您的窗口。或者,您可以在打开/关闭聊天时设置值为“true”或“false”的cookie“chat_open”,如果值为true,则在页面加载时只打开聊天。 – Banana 2014-09-12 11:45:23

回答

1
$(this.form).submit() 

这实际上提交<form>。您可能会收到错误“请使用POST请求”,因为默认情况下它使用GET。它不喜欢被发送一个查询字符串,所以它会给出这个错误。你可以把东西发布给它,但是什么都不会发生。

为了发布东西给它,你需要使用Ajax。见docs

例如:

$("#myForm").submit(function() { 

    var url = "path/to/your/script.php"; //handle form input by your script 

    $.ajax({ 
     type: "POST", 
     url: url, 
     data: $("#myForm").serialize(), //serializes the forms elements 
     success: function (data) { 
      alert(data); //show response 
     } 
    }); 

    return false; //avoid executing actual submit of the form 
});