我有以下代码:
<iframe>
...
<form id="formId" action="someurl">
</form>
<a href="#" onclick="$('#formId').submit(); return false;">click</a>
...
</iframe>
我想通过点击链接BUT提交表单以保持在同一页面上(而不是重定向)。我试过$(document).on('click', 'a', false);
没有运气。
答案 0 :(得分:2)
$('a').click(function(event){
event.preventDefault();
$('#formId').submit();
}
答案 1 :(得分:1)
您可以尝试将iframe设置为沙箱并将其设置为沙箱。然后你可以使用prorerty,如:
沙箱=&#34; ...&#34;
链接: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>
答案 2 :(得分: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();
答案 3 :(得分:0)
所有答案看起来都是正确的,但实际上并不是最终帮助我的东西。在我的特定引文中,我想在用户点击iframe内的链接时下载文件。单击链接后,表单已提交,并且ajax请求已发送到控制器中的方法。事实证明,如果我正确实施方法向用户发送一些数据,iframe将无法重定向。最初,我一直在控制器中的空方法上测试这种重定向行为,这导致了这个问题 - 这让我感到很惊讶。