次のようなHTMLフォームがあります。
<form id="cart-form">
<input type="text" name="quantity" />
<input type="hidden" name="sku" value="SKU123" />
<input type="submit" name="submit" value="Submit" />
</form>
私はこのように隠されたdivも持っています:
<div id="cart-special-offers" style="display:none;"><p>Would you like to take a look at our <a href="/catalogue/category/543" class="ignore-form">current promotions</a>?</p>
<p><a href="/catalogue/category/543" class="ignore-form">Yes please</a></p>
<p><a href="#" class="fancybox-close-link">No thanks</a></p>
</div>
フォームを送信するときに、非表示のdivをfancyboxポップアップウィンドウに表示したいと思います(フォームの送信を停止します)。
ユーザーが特別オファーの表示を選択した場合、フォームの送信は完全にキャンセルされ、ユーザーはリダイレクトされます。
ユーザーが(何らかの方法で)ファンシーボックスポップアップを閉じることを選択した場合は、ユーザーのフォームを送信する必要があります。
私が現在持っているJSは次のとおりです。
$('#cart-form').submit(function(){
$.fancybox.open([
{
href : '#cart-special-offers'
}
]);
return false;
});
$('.fancybox-close-link').click(function(){
$.fancybox.close();
$('#cart-form').submit();
});
これにより明らかにループが発生し、特別オファーを表示せずに閉じようとするたびにfancyboxウィンドウが表示されます。
これを防ぐにはどうすればよいですか?
前もって感謝します。