0

私はこの構造を持っています

<table> <tr><td><form>   .........<input type="submit"/> </form> </td></tr></table>

私はこのようなjqueryを使用してAJAXフォームを介してフォームを送信しています

var options = {
            target:        '.ajaxMessage',   // target element(s) to be updated with server response 
           // beforeSubmit:  showRequest,
            dataType: 'json',  // pre-submit callback 
            success:     function(data){ myResponse(data)},

            cache: false,
            delegation: true,
            type: 'POST'   }; 

            $(".r_form").ajaxForm(options); 

すべてが正常に機能していますが、成功した後、フォームが送信された最も近いテーブルに行を追加したいと思います。

this成功後にmyresponse()関数で使用するときに何がポイントになるのかわかりません

4

3 に答える 3

0

あなたを正しい軌道に乗せるためのいくつかの疑似コード:

$('input:submit').click(function(e){

    var $target = $(e.target);

    var $closestTable = $target.closest('table');

    $closestTable.append('<tr><td>blah</td></tr>'); //this line could be added to the success handler
});
于 2012-10-09T08:30:34.963 に答える
0

「すべてのコールバック内のこの参照は、設定で$ .ajaxに渡されるコンテキストオプションのオブジェクトです。コンテキストが指定されていない場合、これはAjax設定自体への参照です。」

差出人:http ://api.jquery.com/jQuery.ajax/

ajax呼び出しをトリガーしたオブジェクトを通過させてからcontext、を使用.closest('table')して目的のテーブルに到達できるようです。

于 2012-10-09T08:30:52.037 に答える
0

次のマークアップがあると仮定します。

<table>
    <tr>
        <td>
            <form class="r_form" method="post" action="...">
                <input type="submit"/>
            </form>
            <div class="ajaxMessage"></div>
        </td>
        <td>
            <form class="r_form" method="post" action="...">
                <input type="submit"/>
            </form>
            <div class="ajaxMessage"></div>
        </td>
        ...
    </tr>
</table>

document.readyハンドラーでこれを実行して、これらのフォームをAJAX化できます。

var options = {
    success: function(data, statusText, xhr, form) {
        var ajaxMessage = $(form).closest('td').find('.ajaxMessage');
        ajaxMessage.html(data);
    }
}; 
$('.r_form').ajaxForm(options);

ドキュメントで説明されているように、コールバックの4番目の引数はsuccess、対応するフォームDOM要素を表し、含まれているものを検索し<td>(または<tr>、ajaxMessage要素がどこにあるかによって)、そこから.ajaxMessage更新するdivを検索します。

于 2012-10-09T08:33:53.580 に答える