1

最初のフォームで呼び出された ajaxForm によって返された html にある 2 番目のフォームで、ボタンの動作 (jQuery UI クロムおよび jQuery 機能) を取得しようとしています。ボタンは最初のフォームで機能します。jQuery UI クロムが表示され、ajaxForm イベントが機能します。2 番目のフォームの場合、ボタンは一般的で、ajaxForm は機能しません。フォームで定義されたターゲットに jQuery 経由では送信されません。私の問題には bind() または delegate() または live() が関係していると思いますが、再バインドする方法がわかりません。これが私のコードです:

// prepare Options Object for first form submit of new program
     var options = { 
     target:     '#add_program_container', 
     success:    function (response) {
              jQuery('#add_program_container').html(response);
        }
     }; 

     // pass options to ajaxForm for first form sumit of new program

     jQuery('#new_program_form').ajaxForm(options);

      // prepare Options Object for second form submit of new program - requirements
     var options = { 
      target:     '#add_program_container', 
      success:    function (response) {
         jQuery('#add_program_container').html(response);

         }
     }; 

     // pass options to ajaxForm for second form submit of new program - requirements

     jQuery('#new_program_form_two').ajaxForm(options);

ボタン:

jQuery('#next_button').button({
      icons: { secondary: 'ui-icon-carat-1-e' }
     });

html (フォームは ajaxForm によって返されます。これは jQuery UI を使用したボタンです)

<button id="next_button" type="submit">Next</button>

どんな助けでも大歓迎です!

4

2 に答える 2

3

このアプローチはバインドを使用すると思います。ライブを使用する必要があります:

$("#next_button").live('click', function() { // あなたのコード });

于 2010-10-25T01:56:43.687 に答える
0

document.ready 関数に initBinding() という関数を追加し、初期バインドで呼び出しました。

jQuery(document).ready(function() {

initBinding();

//functions for initial bind

function initBinding() {

    //other functions to rebind after ajax success, can be same functions called initially
}
}
于 2010-10-27T04:47:56.330 に答える