2012-05-17 92 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