2012-05-17 124 views
0

我在我的頁面中加載了一個iframe,其中我加載了具有淡入淡出效果的網站內容。
爲了處理表單提交的iframe裏面我創造了這個功能:在iframe中提交表單

$("#coll").contents().find("form input[type=submit").bind("click",function(event) 
{ 
     event.preventDefault(); 
     element=$(this).parent("form"); 

     if (element.attr("action") === "") { 
      $("#coll").fadeOut("slow",function() 
      { 
       element.submit(); 
      }); 
     } 
     else { 
      var page = element.attr("action"); 
      $("#coll").fadeOut("slow", function() 
      { 
       $('#coll').attr("src",page); 
      }); 
     } 
     return false; 
}); 

的問題是,如果標有新的頁面加載動作,但形式的值不會被髮送。哪裏有問題?

具有空行爲的表單正在運行時沒有問題。

+0

這是你的代碼嗎?如果是這樣,「表單輸入[type = submit」缺少另一個「]」。您還應該發佈您的HTML,以便我們可以有更多的上下文。 – RustyTheBoyRobot

+0

你使用$('#coll')。attr(「src」,page);加載另一個頁面?如果是這樣,它解釋了爲什麼缺少表單值 - 表單沒有提交,因爲缺少動作屬性。 – Dmitry

+0

@RustyTheBoyRobot謝謝,我解決了,但它似乎不是問題。 –

回答

1

如果表格不是有行動,您只能致電提交。如果它有一個動作,你只能將src設置爲動作頁面 - 這不會提交表單,它只會改變URL。您需要在else條款中調用element.submit()

+0

當我改變這一點,沒有什麼是當我點擊提交按鈕 –

+0

你必須**提交**表格發佈數據。我沒有你的代碼來測試它,所以我不能確切地告訴你什麼代碼可以解決這個問題,但是我可以告訴你,簡單地改變src就不會提交表單,因此問題出在哪裏是。如果什麼都沒有發生,那麼你可能會得到一個JavaScript錯誤 - 導致jquery停止。檢查控制檯以查看錯誤是什麼。但你*有*提交表格發佈數據! – FluffyKitten