3

.onAJAX呼び出しの後に送信ボタンを再バインドするためにJqueryが呼び出されなかったon理由を知りたいのです.bindが、それが問題であることを理解できませんでした。しかし、私はさまざまなことを試しましたが、うまくいったのは.bindの代わりに使用することだけでし.onた。

私のフォームは、クリック時にフォームに新しいデータを生成するドロップダウン リストに添付されています。これはAJAX Get呼び出しで行われ、成功するとフォームを選択して使用していました:

$('#formname').on('submit',function(){})

そして、私は試しました

$('#formname').on('submit','form', function(){})

確かに、私は答えられなかった質問から上記を得ました。 jquery-ajax-form-using-onsubmit

$('.container').on('submit','#formname', function(){})また、ここで提案され ている AJAX 関数では変更されないため、on submit を body 要素にアタッチしようとしました: jquery bind functions and triggers after ajax call

しかし、それも無視されました。.on('click', etc...次に、フォームがDOMに到達した後に送信ボタンを再バインドできなかった場合に備えて、「送信」のタイプを「ボタン」に置き換えて割り当ててみました。

しかし、うまくいったのは呼び出しだけでした.bind。正しい基準を使用したいので迷っています。私の完成したコードはそのように見えます。.bind以前.onは呼び出されていなかった がある場所に注意してください。

<script type="text/javascript">
(function ($){
    $('select#<?php echo $dropdown; ?>').on('click', function(){
        var value = $(this).val();
        var form = 'form#<?php echo $gridName; ?>' 
        $.ajax({
            type: "GET",
            url: $(form).prop('action') ,
            data: { gg:value },
            dataType: "html",
            cache: false,
            success: function(htmlResponse){
                var src = $(form , htmlResponse);
                $('.page_1col_col1').html( src );
                //replace the submit with a input buton to tesk on click
                //$('#<?php echo $gridName; ?> input[type="submit"]').prop('type','button');
                $('#<?php echo $gridName; ?>').bind('submit',function (){
                    rowBinding();
                    //replace the submit with a input btn
                    $.ajax({
                        type:"POST",
                        url: $(form).prop('action'),
                        dataType: "html",
                        cache: false
                    });

                });
            }

        });
    });
}(jQuery));

$(document).ready(function(){
    $('#<?php echo $gridName; ?>').bind('submit',rowBinding);
});


function rowBinding(){ //stuff}</script>
4

1 に答える 1