2013-11-05 79 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; 
    });