0

Ajax 経由でフォームを送信しようとしていますが、この場合、正しい構文を理解するのに問題があります。

Ajax リクエストを介してフォーム オブジェクトが追加されたページに div コンテナーがあり、ページに追加する前にいくつかのテンプレートが発生します。私は現時点でこのコードを使用しています:

$('.summary-host').on('click', '.btnUpdate', function (event) {
    var form = this.form;
    $(this.form).ajaxForm({
        type: 'post',
        success: function (data) {
            $(".printArea").empty().append(data).css('visibility', 'visible');
        }
    });
});

.summary-host.btnUpdateはコンテナであり、フォームを投稿するために接続しようとしています。ボタンをクリックすると、var form = this.form;行にヒットしますが、フォームは送信されず、Firebug コンソールにエラーはなく、ここで何が問題なのかについての手がかりが得られます。

これらのフォームを正しく送信するにはどうすればよいですか?

.on()これにより、コンテナーに追加された新しいオブジェクトと既存のフォームオブジェクトに jQuery が確実に接続されることがわかっているため、このメソッドを使用しています。

4

3 に答える 3

1

「jQuery Form Plugin」を使用していると思います

まず、ドキュメント準備で「ajaxForm」を定義する必要があります。次に、「.btnUdate」クリックイベントを定義し、その送信フォームで Jquery submit() メソッドを使用します

this.form の代わりに Form id を使用してみてください (フォームに id を与えます)

$(document).ready(function() { 
        $('#formId').ajaxForm({
             type: 'post',
             success: function (data) {
             $(".printArea").empty().append(data).css('visibility', 'visible');
         }
       }); 

       $('.summary-host').on('click', '.btnUpdate', function (event) {
             $('#formId').submit();
       })
    });

formIdがわからない場合は、jqueryのparent()メソッドを使用できます

$(document).ready(function() { 

    $($('.btnUpdate').parent()).ajaxForm({
        type: 'post',
        success: function (data) {
            $(".printArea").empty().append(data).css('visibility', 'visible');
        }
    });

    $('.summary-host').on('click', '.btnUpdate', function (event) {
         $('.btnUpdate').parent().submit();
    });
});

これが役立つかどうか教えてください

于 2013-08-21T09:17:59.780 に答える