回答編集履歴
1
追記
answer
CHANGED
@@ -2,7 +2,11 @@
|
|
2
2
|
formを利用してajax通信をする場合、必ず**本来のフォームの動作をキャンセルしなければいけません。**そのためには`Event#preventDefault`を実行する必要があります。`return false`だけではイベントのバブリングがキャンセルされるだけで、動作そのものがキャンセルされるわけではありません。
|
3
3
|
※`<form onSubmit="return false;">`という書き方と混同されている可能性があります。こちらはreturn falseで本来の動作がキャンセルされます。
|
4
4
|
|
5
|
+
また、#send_commentのclickイベントをトリガーにしていますが、この場合usernameやbody内で「Enterを押して送信」した場合にajax通信でなく、formのsubmitが発生してしまうため、そもそもトリガーをformのsubmitで取るほうが良いです。
|
6
|
+
```html
|
7
|
+
<form id="form" action="" method="post"> <!-- formにidを振る -->
|
8
|
+
```
|
5
9
|
```javascript
|
6
|
-
$('#
|
10
|
+
$('#form').submit(function(e) { // formのsubmitに処理を登録する、引数としてEventのオブジェクトeを受け取る
|
7
11
|
e.preventDefault(); // これを一行目に追加
|
8
12
|
```
|