1

特定の方法でクライアント側の検証を設定しようとしています。動的で、ボタンがクリックされるか何らかのアクションが実行されるまで表示されないフォームがいくつかあります。だから、ここに私がやっていることがあります:

$(function() {
    $('#content').on('load', 'form', function(e) {
        /* every form will be inside of div#content */
        setUpStuff();
    });
});

次に、ボタンが押された場合:

$('#my-button').click(function() {
    displayForm();
    $('form').trigger('load');
});

問題は、そのイベントがトリガーされたときに起動するようにバインドされたこの関数が起動しないことです。静的であるため、ページが読み込まれると div#content が存在することがわかります。フォームは動的なものです。ただし、フォームを静的マークアップとしてページにスローし、ページの読み込み時に使用できるようにして$('form').trigger('load');も、機能しません。

このコードのどこが間違っているのでしょうか?

4

2 に答える 2

2

カスタムイベント名を使用してみてください。loadイベントは適切にバブルしないことがわかっており、この場合、とにかく何が起こっているのかを実際には説明していません。

$(function() {
    $('#content').on('create', 'form', function(e) {
        /* every form will be inside of div#content */
        setUpStuff();
    });
    $('#my-button').click(function() {
        displayForm();
       $('form').trigger('create');
    });
});
于 2013-03-12T15:59:11.257 に答える
1

nvm、あなたはそれを手に入れたようです:)

私はあなたが何を得ているのか知っていると思います.load()メソッドを試しましたか?

$('#my-button').click(function() {
    displayForm();
    $('form').load(function(){
     setUpStuff();
  });
});

http://api.jquery.com/load-event/

于 2013-03-12T16:17:14.907 に答える