2011-03-30 60 views
3

按照API的fancybox,我使用下面的代碼的iframe:的形式關閉的fancybox的iframe提交使用按鈕標籤 - 不工作

<form> 

... // form fields here 

<button onclick="parent.$.fancybox.close();"> 
<span>Save</span> 
</button> 

</form> 

「保存」被點擊時的形式實際上關閉 - 但表單內容未提交。這就好像在表單實際提交其內容之前觸發了事件close

沒有onclick,內容被提交,但隨後的頁面在iframe中打開 - 不是我想要的。

有沒有辦法解決這個問題?

感謝您的幫助。

回答

0

我結束了創建使用多個span(樣式目的)按鈕和jQuery

<span id="save_btn" class="fc-button fc-button-prev fc-state-default fc-corner-left fc-corner-right"> 
     <span class="fc-button-inner"> 
      <span class="fc-button-content save_button">Save</span> 
      <span class="fc-button-effect"> 
       <span></span> 
      </span> 
     </span> 
</span> 

<script> 
$('#save_btn').click(function() { 
    $('#my_form').submit(); 
}); 
</script> 
+1

問題在這裏 - 我有同樣的問題,但這如何關閉fancybox?你仍然使用'

8

您可以使用event.preventDefault()方法是這樣的:

<form> 

... // form fields here 

<button onclick="event.preventDefault(); parent.$.fancybox.close();"> 
<span>Save</span> 
</button> 

</form> 

然後submit the page using jquery

因此,這將是更好地使其在這樣的功能:

function closeME() 
{ 
    event.preventDefault(); 
    parent.$.fancybox.close(); 
    $('#myForm').submit(); 
}  
    ... // form fields here 

    <button onclick="closeME();"> 
    <span>Save</span> 
    </button> 



    </form> 

<form action="" method="post" id="myForm"> 
    ... // form fields here 
    <button onclick="closeME();"> 
    <span>Save</span> 
    </button> 
</form> 

    <script type="text/javascript"> 
     function closeME() { 
      event.preventDefault(); 
      parent.$.fancybox.close(); 
      $('#myForm').submit(); 
     } 
    </script> 
+0

感謝您的建議,但不幸的是它不工作 - 表單關閉,但沒有提交 - 這也發生如果我改變行順序,用'.submit ''之前'.close' – pepe 2011-03-30 20:00:33

+0

@torr - 我編輯了我的代碼示例,請再試一次,希望這個工作在你的情況下。 – 2011-03-31 00:47:26

+0

這是令人難以置信的 - 仍然不起作用 - 我已經嘗試了很多不同的東西,並且它在fancybox關閉時從不需要表單內容 - 它是'close'防止'submit'發生,反之亦然 – pepe 2011-03-31 02:11:18

0

幾行這樣一個完美的作品我解決這個:

$('body',top.document).removeClass('fancybox-lock'); 
$('.fancybox-overlay',top.document).css('display','none'); 

所有其他的東西沒有用。