ユーザーが選択して回答できる複数の質問を含むモジュールを作成しています。それぞれに独自の送信ボタンがあり、データがアプリケーションに投稿され、結果が表示され、フォームが削除されます。この部分を完全に機能させることができましたが、ユーザーがすべてのフォームを一度に送信できるボタンを追加すると、フォームデータは正しく送信されますが、結果は最後の質問に追加されます (アイテムは正しいデータを取得しています) . これは私が使用しているjavascript/jQueryコードです:
// setup the save answer click handler
$(document).on('click', '.saveAnswer', function(event){
event.preventDefault();
// get the form
form = $(this).closest('form');
$.ajax({
async:true,
type: 'POST',
url: form.attr('action'),
data: form.serialize(),
success: function(data){
// append the text to the bottom of the answers
form.closest('.question').find('.answers').append('<li>' + data + '</li>').hide().slideDown(500);
form.slideUp(500,function(){
form.remove();
});
}
});
});
// setup the save all answer click handler
$(document).on('click', '.saveAll', function(){
$('.saveAnswer').trigger('click');
});
値を falseに変更するasync
と正しく動作しますが、アニメーションはまったく機能せず、すべての回答が送信されるまでページが一瞬フリーズしたように見えます。
form
いくつかのデバッグの後、関数が実行されるたびに変数が上書きされることがわかりました。これを防ぐ方法はありますか?