2

ページネーターを使用して動的に埋められる div を含むページがあります;-) ページの初期化で、jquery .load() メソッドを使用して最初の 10 個のフォームをロードします。

私がやりたいことは、AjaxForm プラグインを使用してすべてのフォームを動的に更新できるようにすることです。サーバー側については知っています。update.asp としましょう。できます。

しかし、いくつかの質問があります:

  1. AjaxFormが動的にロードされたdiv内の企業には機能しないように見えるため、プラグインを最初に機能させる方法は?

  2. フォームを識別して名前を付けるにはどうすればよいですか? 今、私は ID を使用し、それらすべてに myForm という名前を付けました (おそらくそれが機能しない理由です)。myForm1、myForm2 などの名前を使用する場合、使用する 10 個の ajaxForm 関数を作成する必要があるためです。

         $('#myForm').ajaxForm({
           beforeSubmit: showLoader,
           success: hideLoader
     }); 
    

次に、myForm1 から myForm10 を使用して、これを 10 回行う必要がありますか? 他に方法があるはず...

  1. まだロードされていないページで AjaxForm を機能させるにはどうすればよいですか? これは1)と同じ問題だと思います。ページ1でさえ何らかの形で動的にロードされるため、ajaxFormはフォームにバインドされません。

申し訳ありませんが、私は jquery にまったく慣れていません。一生懸命勉強しようとしています。ここに書く前にかなりの時間を試しました。あなたが私を助けることができれば、私はとても感謝しています.

あなたのもの

ジェリー

編集:これが私のローダーです...ローダーが表示されないため、正常に動作していません.hideLoaderにアラートを入れた場合にのみ表示されるのは非常に速く消えます:-(((

      function load(num){
      showLoader2();
      var link='/obdelaneslike.asp?ID=<%=request.QueryString("IDRecept") %>&offset='+ num
       $('#content').load(link, function(){
        hideLoader2();
        $('.ajax-loader').hide();

         $('.myForm').bind("submit", function(event) { 
                   $(this).ajaxForm({

               beforeSubmit: showLoader($(this).find('img.ajax-loader').attr('id')),
           success: hideLoader($(this).find('img.ajax-loader').attr('id'))

           }); 
           return false;
                  }); 

           });

       }
4

2 に答える 2

2

質問に一致するように、一度に1つずつ対処していきます。

1).load()次の場合(または使用しているjQuery ajaxメソッド)に再バインドするか、次のようなプラグインを使用できます。livequery()たとえば、ここで再バインドします(successハンドラーでこれを行います)。

$("#myDynamicDiv .myForm").ajaxForm({ ...options... }); 

または使用livequery()

$(".myForm").livequery(function() { $(this).ajaxForm({ ...options... }); });

2)ここでは、次のようにIDの代わりにクラスを使用します。class="myForm"このような要素のバッチを処理する場合classは、非常に安全なルートです。上記の例は、フォームごとのIDではなく、クラスで機能します(IDを持つことができ、使用されないだけです)。フォームタグは次のようになります。

<form class="myForm">

3)回答#1の同じ解決策がこれを説明しています:)

于 2010-08-12T13:23:42.787 に答える
1

ID値は、単一のDOM要素に固有です。したがって、各フォームに新しいIDを付ける必要があるため、3つのフォームがある場合は、次のように名前を付けることができます。

<form name="formone" id="formone"...
<form name="formtwo" id="formtwo"...
<form name="formthree" id="formthree"...

次に、次のようにajaxリクエストのインスタンスを作成します。

     $('#formone, #formtwo, #formthree').ajaxForm({
       beforeSubmit: showLoader,
       success: hideLoader
     }); 
于 2010-08-12T13:18:31.253 に答える