2014-09-12 39 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 
});