2017-02-26 9 views
0

ホームページのフォームからコードを投稿するプライマリJSがあると、ユーザーはセカンダリフォームを取得して詳細を更新し、2番目のフォームで更新プログラムにヒットします。セカンダリJSフォーム送信

すべては、送信の2番目の選択(私のサイトの更新ボタンと呼ばれる)までスムーズに機能します。ここで

は、更新ページである:

<div class="welcomersvp"><h2>Welcome <?php echo $PrimGuestSalutation; ?>!</h2></div><br> 

     <form name="updatersvpform" id="updatersvpform"> 

///スキップしたフォームデータが簡潔な

<div class="rsvp-button text-center"><button type="submit" class="hvr-sweep-to-right">Update</button> 

であること、および、ここでJSハンドラです:私はヒット

(function ($) { 
    'use strict'; 
    $("#updatersvpform").submit(function (event) { 

     event.preventDefault(); 

     $("#updateloading").css("display", "inline-block"); 
     $.post("updatersvp.php", { 
       updateaddress1: $("#updateaddress1").val() 
      }) 
      .done(function (data) { 
       if (data) { 
        $("#updateloading").hide(); 
        $("#UpdateSuccess").slideDown("slow"); 
        setTimeout(function() { 
         $("#FullField").slideUp("slow"); 
        }, 1500); 
        setTimeout(function() { 
         $("#FullField").html(data); 
        }, 2300); 
        setTimeout(function() { 
         $("#FullField").slideDown("slow"); 
        }, 3500); 

        $("#updatersvpform")[0].reset(); 
       } 
       else { 
        $("#updateloading").hide(); 
        $("#UpdateError").slideDown("slow"); 
        setTimeout(function() { 
         $("#UpdateError").slideUp("slow"); 
        }, 1000); 
       } 
      }); 

    }); 
})(jQuery); 

更新すると、実際のアドレスバーのすべての変数を含むプライマリページが再ロードされます。 PHPページへの参照はありません(何も受け取っていないようです)。

答えて

1

あなたの質問に表示されているコードの残りの部分を除いて、私は2番目のフォームがDOMオブジェクトとしてロードされ、その提出用のJavaScriptが既にロード済みであると仮定します。

この場合、その後

$('body').on('submit', '#updatersvpform', function(event) 

$("#updatersvpform").submit(function (event) 

を変更違いは、後者は、内の標的のDOMコンテンツの変更を監視するための委任(#updatersvpform)のようであることです親オブジェクト(bodyタグ)のスコープ

+0

これはまさに問題です。私はこれを初めて知ったので、初期ロード後に積み込まれたものを積極的に監視しているかどうかはわかりませんでした。これで修正されました。 –

+0

ありがとうございます。 –