2013-01-21 86 views
-1

我有类似于HTML表单:在提交打开灯箱。如果lightbox关闭,请提交表单。如果链接点击,不要提交

<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> 

在提交表单,我想展示在fancybox弹出窗口中隐藏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窗口。

如何阻止这种情况的发生?

在此先感谢。

+0

这个,一个-1有点苛刻?我问了一个答案的意图,但经过一个小时的思考,才意识到这是一个愚蠢的想法...... – PaulSkinner

回答

0

这是事实的处理事情荒谬的方式。

我想要的是张贴并转到一个页面,但我有两个提交按钮。

我没有意识到的是我可以隐藏其中一个提交按钮(display:none),在其触发灯箱的位置放置一个锚点,然后点击灯箱上的关闭点击时触发点击隐藏输入。

0

尝试这样的事情

$('#cart-form').submit(function (e) 
{ 
    $.fancybox.open([ 
    { 
     href : '#cart-special-offers' 
    } 
    ]); 
    return !!e.submit; 
}); 

$('.fancybox-close-link').click(function(){ 
    $.fancybox.close(); 
    $('#cart-form').submit({ 
     submit: true 
    }); 
}); 
+0

这确实会阻止它循环,但不幸的是,在单击.fancybox-关闭按钮(它确实关闭了fancybox) – PaulSkinner

+0

这应该提交表单...关闭buttonis点击 – bipen

+0

我很抱歉浪费你的时间。我意识到自己正在以完全错误的方式去做我正在做的事情,而我正在尝试做的事情(这里很难解释)实际上是不可能的。 – PaulSkinner