2013-11-05 40 views
0

我在加载iframe中的页面作为表单提交的回调时遇到困难。当我提交没有回调的表单时,提交工作正常,但是当我在提交表单后尝试加载页面时,表单不提交。表单不提交加载回调

以下工作:

$("#new_explanation").on('submit', function(ev){ 
}); 

下不起作用:

$("#new_explanation").on('submit', function(ev){ 
    $('#lastExplanation').load("http://localhost:3000/lasturl", function(){ 
     alert('hi world'); 
    }); 
    return false; 
}); 

在HTML iframe代码:

<iframe width="100%" id="lastExplanation"></iframe> 

我想返回假是防止形式从提交,但我不知道如何做到这一点没有页面刷新。非常感谢帮助。让我知道是否需要发布任何HTML或导轨。

+0

什么'iframe'在你的HTML元素? –

回答

2

我看到你使用jQuery。你为什么不依靠jQuery的方法$ .ajax。它支持GET和POST请求。

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: { name: "John", location: "Boston" } 
}).done(function(msg) { 
    alert("Data Saved: " + msg); 
}); 

从形式只是收集数据,将其转换为JSON对象并把它传递给数据属性

1
  1. 基本表单提交意味着刷新浏览器。 如果你不想刷新,你将不得不做AJAX表单提交。

  2. 当然return false是预防表单提交。

  3. 我的建议与Krasimir的一样,只需触发一个AJAX表单提交,然后在done()事件句柄的函数内编写任何您想要执行的代码。

顺便说一句,从来没有使用load()方法与外部URL作为参数,它不会工作。

希望这可以帮助。

0

如果您只想在iframe中加载页面,则只需将iframe的属性“src”。你可以这样做:

http://jsfiddle.net/2bZDy/

$("#new_explanation").on('submit', function(ev){ 
     $('#lastExplanation').attr("src", "http://localhost:3000/lasturl"); 
     return false; 
    });