1

フォーム送信時にサイレント投稿を実行する必要があります。その投稿の結果を div にロードする必要があります。投稿は正常に機能していますが、ブラウザーは、そのページを静かに div にロードするのではなく、投稿されたページにユーザーをリダイレクトしています。ここにコードがあります...

 $('#task_details_form').submit(function() {
            // Submit AJAX request
        $.ajax({
                url      : $(this).attr('action'),
                type     : 'post',
                data     : $(this).serialize(),
                cache    : false,
                success  : function(data) {
                        $('#user_tasks').html(data);    
                    }

                });
         return false;
     });

私はしばらく構文をいじっていましたが、成功しませんでした。何か案は?

私はこれを e の有無にかかわらず試しましたが、まだ運がありません。

$('#task_details_form').click(function(e) {
        e.preventDefault();
            // Submit AJAX request
        $.ajax({
                url      : $(this).attr('action'),
                type     : 'post',
                data     : $(this).serialize(),
                cache    : false,
                dataType : 'json',
                success  : function(data) {
                        $('#user_tasks').html(data);    
                    }

                });
         return false;
     });
4

3 に答える 3

0

ajax リクエストの ContentType を指定する必要があります。コンテンツタイプを追加

サーバーにデータを送信する場合は、このコンテンツ タイプを使用します。デフォルトは「application/x-www-form-urlencoded; charset=UTF-8」で、ほとんどの場合はこれで問題ありません。content-type を $.ajax() に明示的に渡すと、(データが送信されなくても) 常にサーバーに送信されます。文字セットが指定されていない場合、データはサーバーのデフォルトの文字セットを使用してサーバーに送信されます。サーバー側でこれを適切にデコードする必要があります。

contentType:"Application/JSON"
于 2013-03-12T04:06:13.943 に答える
0

フォーム送信からのデフォルト アクションを防止する必要があります。通常、フォームを送信すると、ブラウザーは現在のページからターゲット ページにリダイレクトします。

変更する必要があります:

$('#task_details_form').submit(function() {

$('#task_details_form').submit(function(e) {

次に、関数の最初の行として次を追加します。

e.preventDefault();
于 2013-03-12T04:11:08.323 に答える
0

ajax ポスティング コードを含む関数を作成し、ボタンのクリック時に呼び出すことを試してください。

function PostMe(){
    var myForm = $('form#id_of_your_form');

      $.ajax({
        url      : myForm.attr('action'),
        type     : 'post',
        data     : myForm.serialize(),
        cache    : false,
        success  : function(data) {
                        $('#user_tasks').html(data);    
                    }

      });
}

そしてボタン

<button onclick="PostMe();">Async Post</button>
于 2013-03-12T04:13:09.070 に答える