0

スクリプトはコメントを投稿し、サーバーから回答をロードする必要があります。Firefoxでは機能しますが、Chromeではイベントがトリガーされないと思います。ボタンをクリックしても何も起こりません。Chrome 開発者ツールでいくつかのエラーを確認しましたが、何も見つかりませんでした。

HTML:

<div class="posted_comments" id="comments'.$post_id.'"></div>
<form method="post" id="c'.$post_id.'">
    <input class="comment_input" placeholder="Write your comment here..." name="comment" />
    <input name="post_id" id="post_id" hidden="hidden" value='.$post_id.' >
    <button class="comment_button" onclick="post_comment('.$post_id.')">Send</button>
</form>

jQuery スクリプト:

 function post_comment(id) {
     x = "#c" + id;
     y = "#comments" + id;
     $(x).submit(function () {
         $.ajax({
             type: 'POST',
             url: 'post_comment.php',
             data: $(x).serialize(),
             cache: false,

             success: function (data) {
                 $(y).html(data);
             },

             complete: function () {
                 $(x)[0].reset();
                 $(x).unbind();
             }
         });
         return false;
     });
 };
4

4 に答える 4

1

関数を実行せずにChromeがフォームを送信すると確信しているので、デフォルトのアクションを防ぐ必要があります。

<button class="comment_button" data-id="' . $post_id . '">Send</button>

$('.comment_button').click(function(event){
   event.preventDefault();
   //put you ajax here, and get the post ID with $(this).attr('data-id');
});
于 2013-09-06T07:05:29.147 に答える
0

によると :

<div class="posted_comments" id="comments'.$post_id.'"></div>
<form method="post" id="c'.$post_id.'">

と:

x = "#c" + id;
y = "#comments" + id;

次のように呼び出す場合:

post_comment('.$post_id.')

次に、変数は次のようになります。

x = "#c.$post_id.";
y = "#comments.$post_id.";

この場合、ID が間違っています。余分な一重引用符があります。

于 2013-09-06T07:26:10.137 に答える