フォームのボタンがクリックされたときにサーバーにJSONリクエストを送信するフォームを作成しようとしています。デフォルトのフォームの動作を無効にして、ボタンをクリックするとメールアドレスを送信できるようにします。サーバーからフォームにメッセージを返す(エラーの場合)か、フォームを成功メッセージに置き換える(成功した場合)という考え方です。
これは私がこれまでに持っているものです(スニペット):
<div>
<br />
<div class="row">
<div id="invite-member">
<p>Enter your email:</p>
<div class="no-show error-msg"></div>
<form id="frm-invite" method="post" autocomplete="off" action='www.example.com/backend.php' accept-charset="UTF-8">
<div class="input-append">
<input type="text" placeholder="Enter Email" class="input-long">
<button id="btn-invite" class="btn btn-primary btn-success" type="submit">Add me »</button>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$("#btn-invite").click(function(e){
alert('Woohoo');
e.stopPropagation();
});
});
</script>
ページが最初に読み込まれるとき、ボタンは期待どおりに動作します。その後(ページをリロードせずに)、イベントバインディングが「壊れている」ようで、ブラウザはwww.example.com/backend.phpにアクセスしたいと考えています。
何故ですか?。