モーダルウィンドウに複数のフォームがあります。誰かが送信ボタンを押すと、データはサーバーに正しく送信されます。わかりやすくするために、送信ボタンをクリックすると読み込み中の画像に変更し、データを送信すると「送信」や「成功」などのテキストに戻したいと思います。または何でも。問題は、私のフォームが動的に生成され、古い方法で送信されることです。
つまり、成功関数を作成して、データが送信されたときに読み込み中の画像をいくつかの成功テキストに戻すことができるようにするにはどうすればよいですか。
私のスクリプト:
$.each(data.product.variants, function(index, variant){
contentHtml = contentHtml +
'<div id="form">' +
'<form class="formProduct" id="formProduct'+variant.id+'" action="{{ 'cart/add/' }}'+variant.id+'" >' + //method="post" delete this cause it needs to be GET
'<div class="variants">' +
'<div class="pop_variantTitle"><label><input type="hidden" id="variantId" value="' + variant.id + '" />' + variant.title + '</label></div>' +
'<div class="pop_variantQuantity"><label">{{ 'Quantity' | t }}: <input type="text" name="quantity" id="formProductQuantity" value="1" /></label></div>' +
'<div class="pop_variantAdd"><input type="submit" class="submit button green" id="submitter" value="In winkelwagen"/></div>' +
'<div id="divMsg" style="display:none;"><img src="https://webshop.com/ajax-loader.gif" alt="Even geduld..." /></div>' +
'</div>' +
'</form>' +
'</div>';
});
$('.formProductContent').html(contentHtml);
});
$().ready(function(){
var form = $('form').attr('id');
$(form).submit(function() {
return false;
});
$('form').live('submit', function(){
$(this).replaceWith("<img src='https://webshop.com/ajax-loader.gif'>");
$.get($(this).attr('action'), $(this).serialize(), function(response){
// if succes
},'json');
return false;
});
});
}
});
return false;
})
</script>