2015-06-08 254 views
0

我有下面的代碼後:從重定向防止點擊鏈接在IFRAME

<iframe> 
... 
    <form id="formId" action="someurl"> 
    </form> 
    <a href="#" onclick="$('#formId').submit(); return false;">click</a> 
... 
</iframe> 

我想通過點擊鏈接來提交表單,但留在同一頁上(而不是重定向)。我試過$(document).on('click', 'a', false);沒有運氣。

+0

您可以使用AJAX進行此操作。在這裏你有類似的主題:http://stackoverflow.com/questions/18169933/submit-form-without-reloading-page。 –

回答

0

所有的答案似乎是正確的,但實際上這不是最終幫助了我。在我的特定位置,我想在用戶點擊iframe內的鏈接時下載文件。點擊鏈接後,表單已經提交,並且ajax請求已經發送到我在控制器中的方法。事實證明,如果我正確地實施一種方法向用戶發送一些數據,iframe將不會重定向。起初,我一直在控制器中的空方法測試這個重定向行爲,這引起了這個問題 - 這讓我感到很驚訝。

2
$('a').click(function(event){ 
    event.preventDefault(); 
    $('#formId').submit(); 

    } 
1

你可以嘗試設置iframe和沙箱。然後你可以使用prorerty的一樣:

沙箱=「...」

  • 允許表單允許表單提交
  • 允許,彈出窗口允許彈出窗口
  • 允許指針鎖定允許指針鎖定
  • allow-same-origin允許文檔保留其原點
  • allow-scripts允許JavaScript執行,並且還允許 功能自動觸發
  • 允許頂部導航允許文檔通過 打破框架的導航頂層窗口

鏈接:http://www.html5rocks.com/en/tutorials/security/sandboxed-iframes/

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"</iframe> 
1

提交表單與ajax保持當前頁面。

var $form = $("#formId"); 

// register handler for submit first 
$form.submit(function (event) { 
    $.ajax({ 
     type: $form.attr("method"), 
     url: $form.attr("action"), 
     data: $form.serialize() 
    }) 
    .done(function (data) { 

    }) 
    .fail(function (r, s, e) { 

    }); 

    event.preventDefault(); 
}); 

// and then submit the form 
$form.submit(); 

More about jQuery submit()