1


0

Jqueryを使用して、AJAXで作成されたフォームを送信するにはどうすればよいですか?

私は2部構成のフォームを持っています。

最初のフォームは、$。postを介して送信され、(すべてが適切であれば)phpから動的に生成されたフォームに置き換えられます。 この背後にある考え方は、最初のフォームがエントリとそのアイテムの関連画像の数を作成するということです。 画像をアップロードするための新しいフォームが生成されます。

私の問題は、新しく生成されたフォームが処理されないことです。 古いonClick = ""関数を使用してフォームを送信すると、動的に生成されたファイルフィールドは無視されます。

私はJquery / AJAXにかなり慣れていないので、これを正しく行っていないかもしれませんが、どのようにしてJqueryに2番目の(動的に生成された)フォームに注意を向けさせることができますか?

第一フォーム:

            Add Inventory



              Add Inventory Form Layout Table


                Price

メーカー

モデル

シリアルナンバー

サイズ(寸法)

ベッドルーム

バスルーム

範囲タイプ

サイディングタイプ

ルーフタイプ

炉タイプ

機能と利点

写真の数

JQueryハンドラー:

$(document).ready(
    function(){
        $("#addinventorybutton").click(
            function(){
               $("#actiontotake").val("Add Home");
               var dta = $("#addinv").serialize();
                           $.post("admin_process.php",dta,function(data){
                   $("div#form").html(data);
                           });
            return false;
        });
                    $("#addnewpicturesbutton").click(
            function(){
            $("#actiontotake").val("Add Picture");
            AddPic();
            return false;
        });
    });

2番目のフォーム(PHPおよびAJAX呼び出し経由):

        Add Associated Images

\n");
            }
            ?>

3 Answer


1


完全にはわかりませんが、DOMが構築されたときに2番目のフォームが存在しなかったのではないかと思います。 あなたがしようとした場合:

$('#formID').live('submit',
function() {
  // do whatever
}
);

私はそれがうまくいくと思います。


1


.live()メソッドを使用して、2番目のフォームを送信します。

$('#addnewpicturesbutton').live('click', function() {
      $("#actiontotake").val("Add Picture");
      AddPic();
      return false;
});

_ .live() attach a handler to the event for all elements which match the 現在または将来の現在のセレクタ。 _


0


新しいものをロードした後、フォームのバインディングを新しくする必要があります。 Call

$("#addnewpicturesbutton").click(
    function(){
        $("#actiontotake").val("Add Picture");
        AddPic();
        return false;

最初の関数のコールバックで。